3

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

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

谢谢

4

2 回答 2

5

当您有多个对通知感兴趣的观察者或对象时,通知很有用。 它们对于 Key Value Observing 也很有用

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

于 2012-06-06T01:35:05.410 回答
4

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

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

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

于 2012-06-06T01:44:35.790 回答