iPhone - 委托还是通知?

时间:2012-06-06 01:30:12

标签: iphone ios ipad

您有一个必须向其父级发送消息的类。您的应用程序的任何其他成员都不使用此类。您将消息作为NSNotification发送,或者您在该类上创建委托协议并在父级中实现委托方法,以便您可以发送消息?

最好的方法是什么?为什么?一种方法优于另一种方法有什么优势?

由于

2 个答案:

答案 0 :(得分:5)

当您有多个对通知感兴趣的观察者或对象时,通知非常有用。 They're also useful for Key Value Observing

委托对于从一个对象向指定为委托目标的另一个对象发送消息(符合您声明的协议)非常有用。

答案 1 :(得分:4)

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

通知作为模式的好处是许多对象可能会响应已发布的通知。希望观察通知的对象只需要注册即可接收它们。这样做的一个优点是您的代码非常松散耦合(通常是oop中的理想值)。在这种情况下松散耦合的缺点是,您可能在不同的类中发生了潜在的相关行为,并且基本上遍布您的代码库。

委托模式更紧密耦合,并且您的委托对象必须符合它将从其接收消息的对象的协议。因此,观察通知对象和通知对象之间的交互(或预期交互)的性质相对容易 - 仅通过查看代码,两个“相关”对象之间的对象消息传递就更容易掌握。如果您有一个孩子基本上宣布某种行为(可能与父母的行为直接相关),我认为代表团是一种更好的方法。