这个模式在Web开发中几乎是必定被提到的。以前一直以为跟OO里的MVC一样的。
今天跟踪了一下CakePHP的框架代码,发现差别很大:
1. MVC在设计模式里是完全OO的概念,在Web开发中,MVC跟OO并无必然的联系
2. 在设计模式里,MVC强调M-V-C之间的高度解耦,一个V可以使用不同的C,而
一个C可以同时操作多个M,当然,最基本的是一个M可以有很多的V来实现不同的表现。
而从CakePHP看,MVC模式只是为了进行明确的分工,但是彼此之间是一对一的:
一个M必定有且仅有一个C和一个V(他们通过命名规范进行绑定)。我不知道这是不是CakePHP本身设计的局限性,
还是我还没有全部了解CakePHP这方面的设计。但是我觉得这种绑定是很不合理的。
3.设计中,这个模式还强调了发布-订阅模式,就是说当M改变的时候,所有反映这个M的V都会更新.
而在Web里,因为数据都是'拉'模式,也就不存在这个问题。
希望对Web开发了解的人能指点一下,:)