对MVC的理解

MVC是现在用的很多的设计模式之一,他很好的将业务逻辑和展示分开,让重构变得简单了很多,但我发现很多人对MVC有误解

V:view这个很好理解,就是展示数据用的,但对于M和C就不好理解了

最初我以为M:model就是单纯的数据C:controller就是业务逻辑,但后来发现错了,model不是单纯的数据

引用Struts2 in action中的解释,其实模型是应用程序的内部状态,这个状态由数据模型和业务逻辑共同组成,而Controller是决定请求映射到那个动作,从而返回模型,最后模型在view中展现

就拿Struts来取例子,filterDispatcher就应该是控制器的角色,他决定你的请求触发哪个动作,而Action和数据共同组成了模型,一个模型可以对应不同的view,比如一个User对象在一个view中只展现usernam,而在另一个view中展现username和age

而连接MVC的东西就是数据,数据贯穿了整个MVC,而数据的传递与转化就是问题了,struts2的ognl很好的解决了这个问题!

这就是个人的理解,如果有错误欢迎指出!

posted @ 2011-10-27 20:31  Evanlee  阅读(255)  评论(0编辑  收藏  举报