MVC是 Model-View-Controller 的缩写,即“模型-视图-控制器”。 按照MVC的思想,程序中的对象都属于Model,view,controller中的一个。
Model: what your application is, but not how it's displayed.
即你的应用程序是什么。是与界面操作无关的部分。 Model层没有做任何与UI层相关的事情,它只是应用程序的数据体。
Controller: It's the controller that is how Model gets displayed.
Controller用于实现怎样将Model显示给用户(UI逻辑),是Model和View的连接桥梁
View:Controller's minions.
View层就是Controller用来显示的数据的,它受Controller的控制,并将变化通知Controller
层与层的通信:
1. Controller 能直接和Model通信
2. Controller同样能和View直接通信,比如设置View的属性等
3. Model和View不能直接通信
4. View不能直接和Controller通信(view中不能包含Controller的头文件)
5. View和Controller进行通信的三种方法:a、target-action; b、delegate; c、data source
6. view do not own the data they dispaly。View 需要数据时,它会发出请求,以获取需要的数据。
7. Model不能和Controller直接通信
8. Model主要是通过Notifiction & KVO和Controller进行通信
9. View一般不监听Model广播出来的信息,因为这样做就会是View和Model建立了特殊关联,变得不通用
10. 一个app一般会是N多个MVC的组合
附注:上面提到的delegate, target-action, Notification, KVO等概念将在以后进行解释