参考:
面向对象设计的SOLID原则
如何使用服务模式?
MVC简介
MVC概念及优缺点
M:数据模型层
M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
V:视图层
V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。
C:业务逻辑层
C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
MVC的优点:
- 耦合性低
视图层和业务层分离,业务逻辑层和数据逻辑层分离(在一些项目中还会建立service层来解耦c层中的业务逻辑); - 重用性高
由于各层之间耦合度较低,M层只处理与对应表的数据操作,所以C可以调用对应的M层进行数据交互;C层与V层是完全解耦的,所以Web端和无线浏览器(Wap)端,相同的产品时可使用相同的接口(C层返回的) - 部署快,生命周期成本低
- 可维护性高
- 可进行灵活扩展
MVC的缺点:
7. 在开发小型项目时,过度细化的分解各层,往往使开发变得繁琐,也增加了结构的复杂性
8. 在开发过程中C层与V层联系较为紧密,依赖性较强
总结:
1、在M层和C层都可以对相同的代码封装父类调用,例如:可以把增删改查的基本操作封装到M层的父类当中,可以把用户的是否登录的验证和Header头的相关信息封装到C的父类当中。
2、对MVC的设计理念的理解需要从实际的工作中去深刻体会,解耦各层,提高开发效率;M层的建立,常规项目都是按照数据数据结构进行建立;C层当中每个方法不应超过100行或是一个屏幕,超过就说明代码还有优化的空间。