第⼆十四讲:MVC、通知

来源:互联网 发布:淘宝一折特卖网手表 编辑:程序博客网 时间:2024/04/27 23:15

本讲内容



⼀、MVC


MVC

Model - View - Controller即 模型 -视图 -控制器⼲广泛应⽤于各种开发。



MVCModel(模型),存储、处理数据,为应⽤用程序提供数据。例如:通

讯录中的ContactPerson、《⾖豆瓣》中的ActivityMovie等等。View(视图),展⽰示⽤户界面视图,提供⽤户交互,展示模型提供的数据。

例如:系统提供的视图类、⾃定义的视图类等等。

Controller(控制器),控制视图显示,处理用户交互,从模型获取数据展⽰示在视图上。目的是解除模型和视图之间的耦合。




CV通信

C直接控制V

例如:在Controller中创建一个UIButtonVC发起通信的⽅式:

设置Viewtarget/action,例如设置UIButtontarget/action。设置delegate,例如设置UITextFieldUIAlertView代理。设置dataSource,例如设置UITableViewdataSource

C负责处理V产生的事件。



CM通信

CM提出需求,直接使⽤M提供的数据。MC发起通信方式:KVO、通知,可以在M发生变化时通知C,C负责读取M提供的数据,负责监控M的变化并进⾏处理。



VM通信

VM禁⽌止通信。C负责MV之间的通信。CM获取数据,将数据显⽰示在View上。




MVC优势

实现低耦合,减少视图和控制器之间复杂冗余的代码。

 提⾼重用性,多个视图可以共享一个模型,多个控制器可以共享一个视图。

更易于维护,MVC独⽴立,可以分别处理不同的变化。



⼆、通知


通知

 通知模式:一个对象能够给其他任意数量的对象⼲广播信息。对象之间可以没有耦合关系。

NSNotification(通知),封装了要⼲广播的信息。NSNotificationCenter(通知中⼼心),管理注册接收消息对象,⼲广播消

息。observer(观察者),需要监测⼲广播信息的对象,即接收信息的对象。



使⽤方法

 接收信息对象在通知中心进⾏行注册,包括:信息名称、接收信息时的处理⽅方法。
 对象通过通知中⼼⼲广播信息,包括:信息名称、信息内容。 已经注册过的对象如果不需要接收信息时,在通知中心注销。


使⽤方法
注册: [[NSNotificationCenter defaultCenter]addObserver:注册对象selector:@selector(⽅方法名)name:信息名称object:nil]

注销: [[NSNotificationCenter defaultCenter]removeObserver:注销对象name:信息名称object:nil];

发送信息:[[NSNotificationCenter defaultCenter]postNotificationName:信息名称object:发信息对象userInfo:发送消息时传递的信息];



0 0
原创粉丝点击