委托和继承相比较,具有那些优缺点?

来源:百度文库 编辑:神马文学网 时间:2024/04/29 15:43:38
可以这样说,委托和承继都是扩展功能的方法。
在很多时候类的设计者要去考虑在扩展类功能时是采用委托的方式还是采用承继的方式。

那么就得依照类的设计理念来判断。 即类的内聚性,即其单一功能性。

如果按照领域驱动设计的观点,实体的东西可以用“继承”来扩展,而服务的东西一般用“委托”。 如果没有委托,那么最后设计出来的就可能是所谓的“上帝类”。 解释:红色字体所表示的意思是指利用委托可以在不用继承父类的情况下,去重写父类中的方法,或是重写Sealed类里的方法的时候,这样做的好处在于别人想用我这个类实现一些操作,但是我又不想让他看我这个父类中其它的东西(比如一些其它的抽象方法或是被指定Protected、Public的一些属性或方法),只想让他做我指定的事情的时候,用委托可以很好的解决这个问题。而如果这时候用继承的话,那么别人可以调用我Protected、Public的方法或属性,我认为这就是最大的区别