红雪中国 2011-12-06
首先说说MVC
MVC模型层-视图层-控制层这种架构实现了前端后端以及控制层的分离。
优点:分出多层,降低耦合。实现复用。比如一个模型层可以设计多个视图层。
三层架构
业务逻辑层数据访问层表现层
也是划分出多层。但是将MVC中的模型层,也就是关于数据的逻辑处理划分为数据访问层和业务逻辑层。当然,三层架构不是在MVC的基础上划出来的。
相对于MVC,三层架构少了控制层,无法实现表现层和后端模型的灵活控制。相对于三层架构,MVC少了对模型层的进一步划分。业务逻辑层和数据访问层放在在一起。
所以二者首先是不同的,并且都不是完善的。二者结合起来最终由控制层,业务逻辑层,数据访问层,表现层四层。
可以这样理解。MVC解决了前端和后端的控制,在前端,控制,和后端这块降低了耦合度。视图可灵活匹配模型。但是没有将后端的业务逻辑层和数据访问层进行解耦。
三层架构解决了数据访问层,业务逻辑层,表现层的分离。那么这样够了吗?表现层如何和后端进行匹配的呢?(问题1)如果说三层架构没有解决前端和后端的控制,那么前后端代码还是存在耦合的。虽然理论上有表现层。但是这个表现层可能不够独立。会和后端代码耦合。
综上,结合MVC的前后端解耦。加上三层架构的后端数据访问层和业务逻辑层的分离。组合出来的是二者优点结合的。
表现层+控制层+业务层+数据访问层这样四层的结构。这样充分二者的优点!
我的实践经验不多,完全属于个人推理。欢迎各种拍砖,相互提高!谢谢!!最好是有实际经验的帮助深入分析下!!谢谢!!