对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很好的解决了这个问题!
这就是个人的理解,如果有错误欢迎指出!