黑马程序员技术交流社区

标题: 为什么MVC不是一种设计模式 [打印本页]

作者: hee    时间: 2014-12-10 22:16
标题: 为什么MVC不是一种设计模式
本帖最后由 hee 于 2014-12-14 21:57 编辑

为什么MVC不是一种设计模式?



作者: qiusiyu    时间: 2014-12-10 22:34
MVC就是一种设计模式。
作者: Littlekin    时间: 2014-12-10 22:45
本帖最后由 Littlekin 于 2014-12-10 22:46 编辑

对于这个问题,GoF (Gang of Four,四人组, 《Design Patterns: Elements of Reusable Object-Oriented Software》/《设计模式》一书的作者:Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)并没有把MVC提及为一种设计模式,而是把它当做“一组用于构建用户界面的类集合”。在他们看来,它其实是其它三个经典的设计模式的演变:观察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和组合模式(Composite)。根据MVC在框架中的实现不同可能还会用到工厂模式(Factory)和装饰器(Decorator)模式。
   所以,MVC模式是一种复合模式(复合设计模式为两种或两种以上设计模式结合在一起)。
   MVC中的模型(MODEL)采用了观察者模式。也就是说,如果模型状态改变,对应的视图和控制器状态也会随之改变;MVC中的控制器(Controller)采用了策略模式,视图将行为委托给了控制器,并且可以动态的改变行为,也就是动态的更换控制器;MVC中的视图采用了组合模式,视图中的窗口、面板、按钮、标签等。这些组件有的是组合节点,有的是叶子节点,利用组合模式可以让这些节点采取统一的处理方式。


作者: Xwoder    时间: 2014-12-12 10:16
MVC是设计模式,楼上说的很不错
作者: hee    时间: 2014-12-12 22:37
Littlekin 发表于 2014-12-10 22:45
对于这个问题,GoF (Gang of Four,四人组, 《Design Patterns: Elements of Reusable Object-Oriented So ...

懂了,MVC就是一种复合模式。
作者: 。烊了    时间: 2014-12-13 15:36
MVC是一种编程思想,这在j2EE里面体现的淋漓尽致
作者: 邹志鹏    时间: 2014-12-13 15:49
这个问题怎么感觉像是文字游戏,没必要纠结,又不是学中文专业的,说MVC是设计模式,或者说编程思想都是没有错的,掌握了并能游刃有余地使用才是王道




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2