JCa*_*sso 101 model-view-controller design-patterns architectural-patterns
根据维基百科,它是一种建筑模式
与设计模式相比,建筑模式的规模更大.(维基百科 - 建筑模式)
或者它是一种具有设计模式的建筑模式?
哪一个是真的?
小智 51
MVC更像是一种架构模式,但不适用于完整的应用程序.MVC主要涉及应用程序的UI /交互层.您仍然需要业务逻辑层,可能还需要一些服务层和数据访问层.也就是说,如果你采用n层方法.
Ode*_*ded 38
为什么其中一个必须是真的?
根据观点,两者都可以是真的.
如果MVC构成应用程序体系结构的基础,则它可以是一种体系结构模式.
它也可以看作简单的设计模式,适用于任何应用程序的抽象概念.
小智 26
设计模式说明了如何有效地编写代码(考虑Code Metrics).
一些好处:
建筑模式说明如何有效地利用资源.
在MVC中, a).可以使用javascript模板创建视图,也可以使用html b).控制器可以编写.NET框架和 c).模型可以用Java编写 - 可以使用只返回json数据的java服务.
在设计模式中,无法实现一种模式,其中代码可以用多种技术编写,例如Java中的AdminUser类,C#中的Customer类,Php中的Partners类和Ruby中的工厂模式:); 嗯......太简单了?:)
我知道它已经被回答了一段时间,但是还没有人提到使MVC成名的那本书:面向模式的软件架构(POSA),由Buschmann等人于1996年出版.尽管没有像设计模式书那样广泛阅读通过Gamma等人,POSA是模式社区使用的基础书籍之一.
哦,POSA非常清楚地将MVC识别为架构模式.我的预感是MS和Sun只是邋and并称每种模式都是"设计模式".
模型/视图/控制器 (MVC) 三元组内的设计模式包括但可能不限于:
观察者,解耦对象,以便对一个对象(模型)的更改可以影响任意数量的其他对象(视图),而不需要更改的对象(模型)知道其他对象(视图)的详细信息。
Composite,它让我们可以像处理其中的单个对象(视图组件)一样处理组对象(复合视图)。
Strategy,其中视图使用 Controller 子类的实例来实现特定的响应策略;要实施不同的策略,只需用不同类型的控制器替换实例即可。
Factory Method,指定视图的默认控制器类。
装饰器,向视图添加滚动。
参考
埃里克·伽玛、理查德·赫尔姆、拉尔夫·约翰逊和约翰·弗利塞德斯。设计模式:可重用的面向对象软件的元素。艾迪生-韦斯利,雷丁,马萨诸塞州,1994 年。