什么时候该使用以委托取代继承?什么时候又该以继承取代委托?
先来看看两者各自分别适用于的场景:
以委托取代继承:某个子类只使用超类接口中的一部分,或是根本不需要继承而来的数据。
注:你只需要受委托的一部分功能,接口中的哪一部分应该被使用,哪一部分应该被忽略,完全由你控制,这样做的成本是需要额外写出委托函数,但这些函数都非常简单,极少可能出错。
以继承取代委托:如果两个类之间使用委托关系,并经常为整个接口编写许多既简单的委托函数。
什么时候该使用以委托取代继承?什么时候又该以继承取代委托?
先来看看两者各自分别适用于的场景:
以委托取代继承:某个子类只使用超类接口中的一部分,或是根本不需要继承而来的数据。
注:你只需要受委托的一部分功能,接口中的哪一部分应该被使用,哪一部分应该被忽略,完全由你控制,这样做的成本是需要额外写出委托函数,但这些函数都非常简单,极少可能出错。
以继承取代委托:如果两个类之间使用委托关系,并经常为整个接口编写许多既简单的委托函数。