Mic*_*l Z 2 cocoa design-patterns
我正在阅读Cocoa Fundamentals-> Design Patterns-> Observer - > Uses and Limitations.它提到了一个让我感到困惑的" 与授权的重大区别 ":
但接收通知的对象只能在事件发生后作出反应.这与授权有显着差异.委托人有机会拒绝或修改委托对象提议的操作.另一方面,观察对象不能直接影响即将发生的操作.
特别是在委托上有机会拒绝或修改操作,而观察对象却不能.
Pét*_*rök 25
委托意味着调用另一个对象来执行给定任务,因此它自然有机会影响该任务的结果.这就像你的朋友要求你今晚购买2张电影票 - 你有话要去哪里,看什么电影,甚至可能建议邀请更多的朋友或去音乐会.
通知仅在执行任务后发生,因此通知对象不能再更改事件.这就像你的朋友说"我今晚8点在宫廷电影院有2张阿凡达门票,你想来吗?".
@Péter的答案绝对正确.我想补充一点信息:
(void).通知方法不能返回任何对象,因为他们没有对象返回来.