MVC是devise模式还是架构模式

根据Sun和Msdn的说法,这是一个devise模式。

根据维基百科,这是一个build筑模式

与devise模式相比,build筑模式的规模更大。 (维基百科 – build筑模式 )

或者是一个build筑模式,也有一个devise模式?

哪一个是真的?

MVC更多的是一个架构模式,但不是完整的应用程序。 MVC主要涉及应用程序的UI /交互层。 你仍然需要业务逻辑层,也许是一些服务层和数据访问层。 也就是说,如果你进入n层的方法。

为什么其中一个必须是真的?

两者都可以是真实的,这取决于观点。

如果构build应用程序体系结构的基础,MVC可以是一个架构模式。

它也可以被看作简单的devise模式,一个适用于任何应用程序的抽象概念。

devise模式指出如何有效地编写代码(考虑代码度量 )。

一些好处:

  1. 易于维护
  2. 高重用性
  3. 因为抽象而可读

build筑模式说如何有效地利用资源。

  1. 并行任务的执行,如程序员和graphicsdevise师可以并行工作。
  2. 可以利用多种技术来构build软件。

在MVC中, a)。 可以使用javascript模板创build视图,也可以使用html b)。 控制器可以编写.NET框架和c)。 模型可以用Java编写 – 可以使用只返回json数据的java服务。

在devise模式中,一个模式不能实现 ,代码可以用多种技术编写,如Java中的AdminUser类,C#中的Customer类,Php中的Partners类以及Ruby中的工厂模式。 嗯..容易?:)

我知道它已经被回答了一段时间,但是还没有人提到使MVC出名的书:1996年出版的Buschmann等人提出的面向模式的软件体系结构(POSA)。虽然没有被广泛阅读的devise模式书,由Gamma等人,POSA是模式社区使用的基础书籍之一。

哦,POSA非常清楚地将MVC标识为一种架构模式。 我的直觉是,MS和Sun只是sl and不驯,把每一个模式都称为“devise模式”。

我认为这两个都是事实。 如果您正在像Ruby on Rails这样的框架中查看MVC的特定实例 ,则该实例更像是一种devise模式。 如果你把MVC看作是一个普遍的概念 ,那更多的是一种架构模式。

MVC总是在软件体系结构的书中提到和介绍成表示层。

阅读这些书籍:

  1. 为企业构buildMicrosoft.NET解决scheme (微软出版社)

  2. 专业的ASP.NETdevise模式 (Wrox)

  3. 使用Microsoft.NET Enterpise解决scheme模式 (Microsoft新闻)

  4. 企业应用程序体系结构 (Addison Wesley)

  5. 企业架构实用指南 (Prentice Hall)

如果你把十个软件架构师放到一个房间里,让他们讨论一下模型 – 视图 – 控制器的模式,你将会得到十二种不同的意见。 一些纯粹主义者不可避免地会对我所说的“MVC”产生疑虑。 请随时在本网页底部的留言板留言。 我很乐意对MVC的含义有不同的看法,但请记住,我不在乎。

约什史密斯

根据Martin Fowler的说法,他们是GUI架构: Martin Fowler-GUI架构

它取决于应用程序的大小,因为它只影响GUI相关的类,在一个小的(主要是GUI)中,它可以被认为是一个架构模式,而在一个巨大的模式中,它只是一个devise模式,你应用到GUI代码(可能是应用程序代码的10%)。

MVC是架构模式。 非常清楚地陈述和显示在http://molecularsciences.org/zend/mvc_model_view_controller

模型/视图/控制器(MVC)三元组中的devise模式包括但不限于:

  • Observer将对象解耦,以便对一个(模型)的更改可以影响其他任何数量的(视图),而不需要更改的对象(模型)知道其他(视图)的细节。

  • 复合 ,它使我们可以像处理单个对象(视图组件)一样处理组对象(复合视图)。

  • 策略 ,其中视图使用Controller子类的实例来实现特定的响应策略; 为了实现不同的策略,只需用不同的控制器replace实例。

  • 工厂方法 ,指定视图的默认控制器类。

  • 装饰者 ,添加滚动视图。


参考

  • 第4页到第6页(第1.2节Smalltalk MVC中的devise模式)
  • 第293至304页(观察者devise模式)
  • 第163至174页(复合devise模式)
  • 315页至324页(策略devise模式)
  • 页107至116(工厂方法devise模式)
  • 第175至185页(装饰devise模式)

Eric Gamma,Richard Helm,Ralph Johnson和John Vlissides。 devise模式:可重用的面向对象软件的元素 。 Addison-Wesley,Reading,MA,1994。

Interesting Posts