Cas*_*ash 6 inheritance cocoa delegates
为什么cocoa使用委托而不是继承?
Jon*_*ess 6
使用委托,您可以将一个对象作为许多其他对象的委托.例如,您可以将MyController实例作为NSTableView,NSTextField,NSWindow以及组成您的界面的任何其他对象的委托.这提供了一个紧凑的位置,可以将所有用户界面代码与UI的一个部分相关联.
如果您使用子类化完成了这项操作,则必须为每个想要回调的对象创建一个子类.
此外,这是一个经典的继承与组合问题
Bry*_*ore 5
通常,创建子类可能是一个耗时的过程,需要大量的基础工作,并覆盖各种模板方法.
同时,使用委托允许您创建一个简单的对象,该对象可以回答一些特定问题或以各种方式做出反应.
现在,当您将此功能与通过动态交换代表可以实现的动态相结合时,它可以创建一个非常灵活的健壮系统,从而促进更多的代码重用.
这里和这里有一些关于这些事情的一般性讨论.你也可以在这里和这里找到一些旧的SO问题.
归档时间:
15 年,12 月 前
查看次数:
1940 次
最近记录:
14 年,7 月 前