iPhone - 委托或通知?

3
您有一个类需要向其父级发送消息,但该类未被应用程序的任何其他成员使用。您可以将消息作为NSNotification发送,或者在该类上创建一个委托协议,并在父级中实现委托方法,以便您可以发送消息?
哪种方法是最好的?为什么?是否有一种方法比另一种更具优势?
谢谢
2个回答

5

当您有多个观察者或对通知感兴趣的对象时,通知非常有用。它们还适用于键值观察

代理非常有用,可以将符合您声明的协议的消息从一个对象发送到另一个指定为代理目标的对象。


4

虽然两种方法都可以满足所述的消息需求,但在这种情况下,委托协议是更适合的选择。

通知模式的好处是许多对象可以响应已发布的通知。希望观察通知的对象只需要注册以接收它们。其中一个优点是您的代码非常松散耦合(通常是oop中的可取值)。在这种情况下,松散耦合的缺点是您有可能相关行为发生在不同的类和整个代码库中。

委托模式更紧密地耦合,并且您的委托对象必须符合它将接收消息的对象的协议。因此,相对容易观察通知对象和被通知对象之间的交互(或预期的交互)-通过查看代码,更容易理解两个“相关”对象之间的对象消息传递。在子代实际上宣布某些行为(与父代的行为直接相关)的情况下,我认为委托是一种更优越的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接