概述
- Model-View-Controller(MVC),即模型-视图-控制器。
- MVC将软件系统分成三大部分:Model,View,Controller,三个部分通过某种机制通信
M、V、C的职能
- M(Model)
- 应用程序的核心,用于处理应用程序数据逻辑部分
- V(View)
- 处理应用程序数据的显示
- 通常依据Model创建
- C(Controller)
- 处理用户的交互
- 从视图读取数据,控制用户输入,并向模型发送数据
M、V、C之间的通信
- 图解(
出自斯坦福大学CS193课程的课件
) - Controller与Model之间的通信
- Controller可以主动向Model发起会话
- Model职能被动地回复Controller发起的会话,不能主动请求Controller
- Controller与View
- Controller可以完全操控View,因为Controller要把View显示在屏幕上
- View可以向Controller发送消息,因为View要将用户的动作传递给Controller
- Model与View之间无法直接通信
- 总结
- Controller对Model:
- 通过API
- C对V:
- Outlet
- V对C:
- Target-action,Delegate,Datasource
- M对C:
- Notification,KVO
- Controller对Model:
V与C之间通信的方式
- 目标操作(target-action)
- Controller内会悬挂一个目标(target),并将一个操作(action)给将要和它交流的视图对象,如图解中的target与action
- 如,为View中的某个按钮添加一个监听事件,当按钮被点击时就执行相应的处理。
- 委托
- 为视图中的某个控件设置代理,当控件被操作时发送相应的代理消息,执行相应的代理方法,实现View与Controller的通信
- 如,tableView的代理
- 数据源
- Controller通过数据源将View需要的数据传递给View,实现Controller与View的通信
分类: 设计模式
时间: 2024-10-10 05:22:09