替代MVC的选择

75

除了模型-视图-控制器(MVC)之外,还有哪些替代的“设计方法”? MVC似乎很受欢迎(我知道SO是用它构建的),但它是唯一使用的方法吗?

8个回答

53

这里有一篇关于几种不同交互式应用程序架构模式的最佳写作之一,这篇非常详细和深入研究的博客文章。它涵盖了模型-视图-控制器、三种不同风味的模型-视图-展示者、几种不同风味的演示-抽象-控制、监督控制器、被动视图和分层MVC。

另一个有趣的模式是Atomic Objects的Presenter First模式。它不仅是一个设计模式,还是一个过程模式。也就是说:“Presenter First”这个名称并不是随意的,它实际上描述了一种开发过程,在这个过程中,Presenter首先编写,驱动系统其余部分的设计。


38

12
不是真正的替代品,而是主题上的更多变化,链接加一。 - mezmo

20

MVC是一种架构模式。这里有其他你可以尝试的架构模式(来自维基百科):

  • 层次结构
  • 多层架构
  • 演示抽象控制(PAC)
  • 模型视图表示器(MVP)
  • 模型视图视图模型(MVVM)
  • 管道
  • 隐式调用
  • 黑板系统
  • 点对点
  • 面向服务的架构(SOA)
  • Naked Objects

这些在维基百科中 可以找到。


8

2
DCI是MVC的一种替代方案。为什么会被踩呢? - java.is.for.desktop
2
DCI是MVC的一种补充,而不是替代品。 - Gordon

3

MVC是设计模式的一部分。我不知道你有多少经验,所以不确定如何回答你。我是.NET程序员,但我发现Java书籍《Head First设计模式》非常有帮助。设计模式通常被分成与其他类似问题的模式组。

我也发现Data Object Factory网站非常有帮助。你应该在你喜欢的语言中寻找一些资源。


2
顺便说一下,作为一个C#程序员,我读了《Head First》这本书,其中的例子足够简单易懂,即使没有Java经验也能理解。 - Steve Duitsman

2

如何看待 Facebook 的 flux.js?我知道它依赖于平台,但它是 FB 用作 MVC 替代品的数据流架构,因此我相信你也可以从中获得一些想法。


2

我从Joe Berkovitz那里了解到了MVCS

Prof. Kowarschick使用这种方法来开发VCLSD模式(维基百科是德语写的!也许有人有时间翻译它 - 至于我自己,我只是一个编程初学者)

MVCS:模型视图控制服务
VCLSD:视图控制逻辑服务数据


1

我们使用的不是替代品,而是称为MVC-ARS的混合模式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接