设计模式-观察者模式

【应用场景】

一般为model层,对controller和view进行的通知方式,不关心谁去接收,只负责发布信息。

【优势】

解耦合(减弱对象之间的耦合程度)、接口隔离原则(分散定义多个接口,预防外来变更的扩散,提高系统的灵活性和可维护性)

【应注意】

设计接口的时候,花些时间去思考和筹划,才能准确地实践这一原则;个人用的时候发现观察者会接收到多次相同的通知,造成泛滥聊天信息的后果。

【敏捷原则】

开放-封闭原则(对于扩展是开放的,对于更改是封闭的)

【实例】

例1.NSNotificationCenter,注册通知中心,任何位置可以发送消息,注册观察者的对象可以接收。例如:

发送通知:

            NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

            [nc postNotificationName:LCLNotificationDidReceiveKuaiXinMessage object:self userInfo:dic];

注册观察者接受通知:

    //录音

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(recvLCLRecorderBcast:) name:@"lclrecorder" object:nil];

移除观察者:

    [[NSNotificationCenter defaultCenter]removeObserver:self];


例2.kvo,键值对改变通知的观察者,平时基本没用过。

 

注-接口隔离:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值