Answers:
MVC更像是一种架构模式,而不是完整的应用程序。MVC主要涉及应用程序的UI /交互层。您仍然需要业务逻辑层,也许需要一些服务层和数据访问层。也就是说,如果您要使用n层方法。
设计模式说明了如何有效地编写代码(考虑Code Metrics)。
一些好处:
建筑模式说明如何有效利用资源。
在MVC中, a)。可以使用javascript模板创建视图,也可以使用html b)。控制器可以编写为.NET Framework和 c)。模型可以用Java编写-可以使用仅返回json数据的java服务。
在设计模式中,无法实现使用多种技术编写代码的模式,例如Java中的AdminUser类,C#中的Customer类,Php中的Partners类以及Ruby中的工厂模式:);嗯..那么容易吗?
类的“模型/视图/控制器”(MVC)内部的设计模式包括但不限于:
观察者,解耦对象,以便对一个对象(模型)的更改可以影响任意数量的其他对象(视图),而无需更改的对象(模型)知道其他对象(视图)的详细信息。
Composite,它使我们可以像对待单个对象(视图组件)一样对待一个组对象(一个复合视图)。
策略:视图使用Controller子类的实例来实现特定的响应策略;要实施不同的策略,只需将实例替换为其他类型的控制器即可。
Factory Method,指定视图的默认控制器类。
装饰器,向视图添加滚动。
参考
Eric Gamma,Richard Helm,Ralph Johnson和John Vlissides。设计模式:可重用的面向对象软件的元素。Addison-Wesley,马萨诸塞州雷丁,1994年。
在软件体系结构书籍中,MVC始终作为表示层提到和引入。
阅读这些书:
为企业架构Microsoft.NET解决方案(Microsoft Press)
专业的ASP.NET设计模式(Wrox)
使用Microsoft.NET的企业解决方案模式(Microsoft Press)
企业应用程序架构的模式(Addison Wesley)
企业体系结构实用指南(Prentice Hall)
如果您将十个软件架构师放到一个房间里,让他们讨论Model-View-Controller模式是什么,您将最终得到十二种不同的见解。…那里的一些纯粹主义者不可避免地会对我所说的“ MVC”产生疑虑。随时在此网页底部的留言板上留下激烈的评论。对于MVC的含义,我将乐意接受不同的看法,但请记住,我不在乎。
乔什·史密斯
根据Martin Fowler的说法,它们是GUI架构:Martin Fowler-GUI架构
它取决于应用程序的大小,因为它仅影响与GUI相关的类,在一个很小的类(主要是GUI)中,可以将其视为一种架构模式,而在一个巨大的类中,它仅是您应用于GUI的一种设计模式。代码(可能是应用程序代码的10%)。
MVC是架构模式。在http://molecularsciences.org/zend/mvc_model_view_controller中非常清楚地陈述和显示