1.什么是MVC
MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。把众多的业务逻辑聚集到一个部件里面,当然这种比较官方的解释是不能让我们足够清晰的理解什么是MVC的。用通俗的话来讲,MVC的理念就是把数据处理、数据展示(界面)和程序/用户的交互三者分离开的一种编程模式
2.为什么使用 MVC?
MVC 属于架构模式的一种,所谓架构就是如何设计一个程序的结构。MVC 将程序结构划分为三层,每一层都对外提供了可供上层调用的接口,既能维系三层之间的联系,也能保持相对的独立性
而每一层都有各自的职责,我们可以将同一逻辑的代码聚集到一个组件,再放到对应的层次中。视图层作个性化的定制页面,而无需知晓下层业务的具体实现。同样的,控制层专心协调视图与模型的数据交互,模型层处理业务逻辑,无需关心数据该如何显示。
这种将业务逻辑、数据和界面分离的代码组织形式,降低了模块间的耦合度,有利于日后的维护与扩展。
3. MVC 的优点
耦合性低
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动 MVC 的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
重用性高
一个模型能被多个视图共享,这意味着从模型传回来的数据能以多种方式显示,而不需要为每一种显示方式编写特定的代码,大大减少了代码量。
部署快
使用 MVC 模式使开发时间得到相当大的缩减,后台程序员集中精力于业务逻辑,前端程序员集中精力于表现形式上。
可维护性高
分离视图层和业务逻辑层也使得 WEB 应用更易于维护和修改。
有利软件工程化管理
由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。
MVC 的缺点
增加系统结构和实现的复杂性
对于简单的界面,严格遵循 MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。所以说 MVC 不适合用于小型、中型应用程序。
视图与控制器间的过于紧密的连接
视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
视图对模型数据的低效率访问
依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。