第8天:用委托代替继承

之前有说过尽量少用继承

这个方法就是讲这个的

旧的代码:

 

Code

 

重构后的代码:

 

 

Code

 

 

在这个例子中,Child并不是Sanitation(is - a),两者没有很强烈的关系,所以不应该强行用继承

这里的委托不是.net里的关键字delegate,应该是说把非关本类的方法交给其他类来出来,委托他人完成

这里的委托两个字来自:31 Days of Refactoring Refactoring Day 8 : Replace Inheritance with Delegation

posted @ 2010-01-03 22:31  双击  阅读(245)  评论(0编辑  收藏  举报