mvc:model,view,controller.
the model manages data and logic,
the view creates the interface,
the controller processes user input.
尽管mvc这三个类是分离的,但是他们之间是要互相通信的:当状态发生改变了,model类必须通知view类,view类注册controller类以便接受用户接口事件,还有可能向model类请求数据.controller类必须更新model类同时有可能更新view类以响应用户的输入.
model类要引用view类, view类和controller类要引用model类,同时view类和controller类互相引用.
具体通信流程:
1 view类接受用户输入并传递给controller类
2 controller类从view类接受用户输入.
3 controller类根据用户输入修改model类或直接修改view类而不修改model类
4 model类根据controller更新.
5 model类通知view类更新.
6 view类更新用户界面.
model类的任务:
model类将数据存储于属性中同时提供与应用相关的方法类修改这些数据,model类的数据可以由model类自己的逻辑更新也可由外部类更新.model类与view类是observe模式,model is observebale 而view类是observer,model类应该提供注册和注销view类的方法,当mode类状态发生变化应该通知所以注册过的view类更新.最后model类实现了mvc模式的逻辑.
view类的任务:
view类创建用户界面并且保持更新状态.view类监听model类的状态,一旦model状态发生变化,view类应该理解更新用户界面.每个view类必须把将用户输入事件移交给controller类,而不应该自己处理用户输入.view类应该可以调用model类的方法查询当前状态.view类的控件可以通过addEventListener,来加入control类事件监听,当view类界面发生改变,view类的某些控件可以触发各种事件(例如click),并将其委托给事件监听者即controller类的相应事件处理方法(例如click方法)。各个view之间应该是独立的,不能相互影响,既不能由一个view去改变另一个view的界面。
controller类的任务:
控制类负责根据从view类传来的用户的输入来觉得如何改变model类的状态.有时候controller类直接调用view的方法改变view类的用户界面.
另外类之间通信有两种方式 push和pull, push模式跟observer模式类似,pull模式即事件模式.
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=2579028
[2005-08-13] 天热了~~~呼乎~~~
[2005-08-13] 余秋雨:《苏东坡突围》
[2005-08-13] 过时的信
[2005-08-13] 傻笑中
[2005-08-13] 8-13