|
发表于 2010-1-21 13:24:31
|
显示全部楼层
本帖最后由 saturn 于 2010-1-21 13:27 编辑
事实上,如果你做过J2EE的敏捷开发,在传统的三层架构(大致是data access layer,business logic layer和web layer)里面:你会发现MVC这个开发模式仅仅是用在WEB层里面用来分离表现和业务逻辑。真正的业务实现business logic是放在诸如EJB这样的container里面单独维护。而且MVC这个M在web layer,比如struts 2,做的东西是业务逻辑和信息验证;而C只是一般只作为请求的分发器,根据需求的不同,将请求分发到不同的M上。比如,通过Spring的DI,只需要简单的配置几个XML文件就可以实现这个功能。
MVC这种设计模式,如果放在诸多设计模式当中,仅仅是观察者模式的一个特例而已。一定要搞清楚的是,设计模式的诞生只是无数程序员先烈(比如,写design partern经典书籍的Gang of four)对于编程经验的总结。狭义的说,它仅仅是一种编程思路和实现方法而已。也就是说,除了他人的经验,在实际编程里面,也可以适当加入自己的理解。
毕竟,PHP不是为开发企业级大型项目而生的。
我觉得CI的MVC现在的实现也对也不对。说它不对,是因为它偏离了MVC的原始思想,这比较容易误导新学习编程的同学;说它对,是因为现在CI这个模式下的MVC的确有助于提升开发效率,虽然它仅仅把M作为一个data access的封装。
说了这么多,我只想得出下面这个结论:你对MVC如何理解,你就如何进行开发;你觉得哪种编程方式能够加快项目开发效率,就用哪种方式开发。千万别把自己的思想束缚了。 |
评分
-
查看全部评分
|