mvc优点:
(1)可以有多个视图对应一个模型的能力;一个应用程序被分离为三层,因此有时改变其中一层就能满足应用的改变
(2)一个应用的业务流程或者业务规则的改变只需要改动mvc的m层(模型层)即可
(3)它还利于软件工程化管理,由于不同的层各司其职,每一层不同的应用具有某些相同的特性,有利于通过工程化、工具化产生管理程序代码
mvc缺点:
(1)增加系统结构和实现的复杂性。对于简单的页面,严格遵循mvc,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率
(2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用
(3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能
(4) 目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难