Objective-C中的委托是否定义为一个充满对象事件侦听器的类?
答案 0 :(得分:6)
委托只是另一个对象可用于查询或自定义行为的对象;仅此而已。没有涉及事件处理程序。它是一种模式,用于避免在其他面向对象的UI工具包中经常看到的大量子类化问题。
例如,不是将NSWindow子类化为在resize上提供自定义行为,而是仅在某个类上实现一些方法,并使用该类的实例作为委托。由于此类实现通常依赖于控件或模型层信息,因此将控制层类用作委托而非子类NSWindow更自然,并且不会污染具有控制层功能的视图层对象。
在幕后,代表们很简单。在调整大小时,NSWindow只询问代表“你是否回应方法windowWillResize:toSize:
,如果确实如此,则在正确的时间调用它;除了直接objc_msgSend()之外没有任何内容。
答案 1 :(得分:0)
这可能是一种思考方式,但并不完全准确。委托负责处理给定对象的回调。这些可能是事件,也可能不是。