A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hee 中级黑马   /  2014-12-10 22:16  /  1098 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hee 于 2014-12-14 21:57 编辑

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


6 个回复

倒序浏览
MVC就是一种设计模式。
回复 使用道具 举报
本帖最后由 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中的视图采用了组合模式,视图中的窗口、面板、按钮、标签等。这些组件有的是组合节点,有的是叶子节点,利用组合模式可以让这些节点采取统一的处理方式。

回复 使用道具 举报
MVC是设计模式,楼上说的很不错
回复 使用道具 举报
hee 中级黑马 2014-12-12 22:37:31
报纸
Littlekin 发表于 2014-12-10 22:45
对于这个问题,GoF (Gang of Four,四人组, 《Design Patterns: Elements of Reusable Object-Oriented So ...

懂了,MVC就是一种复合模式。
回复 使用道具 举报
MVC是一种编程思想,这在j2EE里面体现的淋漓尽致
回复 使用道具 举报
这个问题怎么感觉像是文字游戏,没必要纠结,又不是学中文专业的,说MVC是设计模式,或者说编程思想都是没有错的,掌握了并能游刃有余地使用才是王道
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马