Objective-C 通信模式(Communication Patterns)

在每一个应用程序中都是包含着许多松散耦合的对象,它们之间采用何种通信模式进行交互?哪一种通信机制是最佳的实践?这些都是值得思考的问题(诚然其中没有明确的答案,但是也有一些约定俗成的用法习惯)。

通常情况下,我们可以采用的通信模式包括:KVO,Notifications,delegation,blocks,target-action。

一、了解Communication Patterns

1、KVO

KVO机制用于通知对象属性的变化。

消息接收者-->接收对象属性变化的消息;消息发送者-->对象属性发生变化。

消息接收者通过注册对消息发送者的监听,还必须知道消息发送者的生命期,用以解除对其的注册。


2、Notifications

Notifications(消息通知)用于在代码间广播消息。

Notifications发送的消息是任意的,你可以通过 userInfo 字典或者用 NSNotification 消息载体装载发送的消息

通过Notifications,消息发送者和接收者可以互不认识,即在松耦合的代码间传递消息。此外,这是一种单向的通信方式,即接收方不能回复Notifications的消息通知。


3、Delegation(委托)

委托的作用:传值;传事件。

在委托协议中定义任意需要的委托方法处理两个特定对象之间的通信。发送者即委托者,在委托协议中定义委托方法,接收者即被委托者,实现委托协议中的委托方法。


4、Blocks

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值