在我最近的项目中一直使用puremvc框架,但在开发过程中渐渐发现架构异常的混乱,不过在一篇帖子中看到这张图之后感觉茅塞顿开,心中很多想法想要总结和梳理一下,希望看到这篇文章的朋友可以收到我这篇文章的启发更好的理解MVC模式。
从上图中可以看出来一下几点
一.View与Model的关系
A.View渲染Model
B.从Model请求更新(调用Model获取数据)
C.向Controller传递用户指令
D.允许Controller来选择View
从以上四点和图中可以看出View与Model的关系是单向的,也就是View可以通过调用Model获取数据,但是Model只能通过发送通知向View传递事件。根据上图也能清晰的看出View指向Model是实线表明可以直接调用,而Model指向View的线是虚线表明不能直接调用而是间接调用。
二.View与Controller的关系
A.定义应用的行为
B.根据响应来选择View
C.一个Controller对一个功能
从上图中能清晰的看到Controller可以直接方法调用View,而View只能Event来通知Controller。
三.Controller与Model的关系
A.根据用户的动作来更新Model
B.状态的改变来操作Model
四.最终结论
上图中充分只有Controller直接通过方法调用Model和View,也就是Controller对View和Model有绝对的控制权,有绝对的使用权。并且MVC的精神并不是“隔离”,而是“各司其职”。(这句话摘自网友评论,我非常喜欢)!!!