MVP(模型视图演示器)或MVC(模型视图控制器)

Sum*_*eet 7 architecture design-patterns

我已经知道MVP和MVC之间的区别.然后,在完成应用程序的SRS后,我会进入一个需要选择,应用和遵循Applcation Architecture的Fix.根据我的理解,我会从两个以上的GUI中选择可以使用相同业务逻辑的MVP.喜欢使用公共(www)和Adming(winform)部分的应用程序.如果没有这样......寻找MVC.因为我可以更准确地遵循工厂模式.

伙计们,我不知道,但如果我愿意在他们中间做出选择,我觉得我只是盲目投篮.我需要知道.你们对这些有什么看法?

注意:我遵循.net和C#.

Spo*_*ike 17

在我看来,模型视图控制器模式(MVP,被动视图,监督控制器,视图模型)的所有变体的差异都非常微妙.这完全取决于谁处理数据并从谁那里获取数据.他们都试图解决同样的问题,从另一件事中分离出一些东西,解决方案以类似的方式完成所有这些.

当你用视觉术语思考它时,几乎可以明显看出这些概念在实现上是相似的:

Simplistic MVC:

+-------+       manipulates data
| Model |<---------------------+
+-------+                      |
    |                          |
    | gets data                |
    v                          |
+------------+ serves data  +------+
| Controller |------------->| View |
+------------+              +------+

Simplistic MVP:

+-------+
| Model |
+-------+
  |  ^
  |  | get/manipulates data
  v  |
+-----------+  serve data   +------+
| Presenter |-------------->| View |
|           |<--------------|      |
+-----------+  tell changes +------+
Run Code Online (Sandbox Code Playgroud)

它们类似,因为类层次结构在两者中看起来都一样.然而,差异在于显示和操纵数据的不同方式.当你推出自己的MVC然后你负责它应该是什么样子.

它并不重要,因为它们都基于将代码片段分离为自服务逻辑实体并减少代码重复的原则.只要你保持代码耦合低,它最终应该很好地解决.只有你想要在应用程序的体系结构中进行教条化,才有意义.

务实地做到这一点并做到最适合你的需求,因为你最终会得到一个混合.根据视图的需要,在变体之间切换应该"相当"容易.遵循SOLID原则,你应该做得很好.(另见关于SOLID的内容).

我建议你看看是否有MVC或MVP框架来看看它是如何完成的.