答案 0 :(得分:51)
MVC更像是一种架构模式,但不适用于完整的应用程序。 MVC主要涉及应用程序的UI /交互层。您仍然需要业务逻辑层,可能还需要一些服务层和数据访问层。也就是说,如果你采用n层方法。
答案 1 :(得分:38)
为什么其中一个必须是真的?
取决于观点,两者都可以是真的。
MVC可以是一种架构模式,如果它构成了应用程序架构的基础。
它也可以看作简单的设计模式,适用于任何应用程序的抽象概念。
答案 2 :(得分:25)
设计模式说明如何有效编写代码(考虑Code Metrics)。
一些好处:
建筑模式说明如何有效利用资源。
在MVC中, a)。可以使用javascript模板创建视图,也可以使用html b)。控制器可以编写.NET框架和 c)。模型可以用Java编写 - 可以使用只返回json数据的java服务。
在设计模式中,无法实现 模式 代码可以用多种技术编写,比如Java中的AdminUser类, C#中的客户类,Php中的Partners类和Ruby中的工厂模式 :);嗯......太容易了?:)
答案 3 :(得分:6)
我知道它已经在前一段时间得到了解答,但是还没有人提到过让MVC出名的那本书:面向模式的软件架构(POSA),由Buschmann等人于1996年出版。尽管没有像设计模式书,由Gamma等人提出,POSA是模式社区使用的基础书之一。
哦,POSA非常清楚地将MVC识别为架构模式。我的预感是,MS和Sun只是邋and并称每种模式都是“设计模式”。
答案 4 :(得分:3)
我认为两者都是真的。如果你在像Ruby on Rails这样的框架中查看MVC的特定实例化,那么实例化就更像是一种设计模式。如果你把MVC视为一般概念,它更像是一种架构模式。
答案 5 :(得分:2)
MVC总是在软件架构书籍中的表示层中提及和引入。
阅读这些书:
Architecting Microsoft.NET Solutions for the Enterprise(微软出版社)
Patterns of Enterprise Application Architecture(Addison Wesley)
A Practical Guide to Enterprise Architecture(Prentice Hall)
答案 6 :(得分:2)
如果您将十个软件架构师放入一个房间并让他们讨论模型 - 视图 - 控制器模式是什么,那么您最终会得到十二种不同的意见。 ......有些纯粹主义者不可避免地会对我称之为“MVC”的问题产生疑虑。请随意在本网页底部的留言板上留下火红的评论。我很乐意接受关于MVC意义的不同观点,但请记住,我不在乎。
乔什史密斯答案 7 :(得分:1)
根据Martin Fowler的说法,他们是GUI架构:Martin Fowler-GUI architectures
它取决于应用程序的大小,因为它只影响GUI相关的类,在一个小的(主要是GUI)中它可以被认为是一种架构模式,而在一个巨大的一个中它只是一个你应用的设计模式到GUI代码(可能是应用程序代码的10%)。
答案 8 :(得分:1)
模型/视图/控制器(MVC)三元组中的设计模式包括但不限于:
观察者,解耦对象,以便对一个(模型)的更改可以影响任意数量的其他对象(视图),而无需更改对象(模型)来了解详细信息其他人(意见)。
复合,它允许我们处理组对象(复合视图),就像我们处理其中一个单独的对象(视图组件)一样。
策略,其中视图使用Controller子类的实例来实现特定的响应策略;要实现不同的策略,只需用不同类型的控制器替换实例。
工厂方法,指定视图的默认控制器类。
装饰者,将滚动添加到视图中。
<强>参考强>
答案 9 :(得分:0)
MVC是架构模式。在http://molecularsciences.org/zend/mvc_model_view_controller
清楚陈述并显示