第11章:处理概括关系
提炼接口
动机:这个和提炼超类有相似之处,可以使得代码更加清晰,如果有天需要用到共同的接口,那么实现起来很方便。以委托取代继承
动机:继承相当于拥有了父类的全部内容,而有时我们只需要一部分内容就可以了,那就只用委托好了。以继承取代委托
动机:如果发现使用了委托类的所有函数,并且写了很多委托函数,使用继承会更加轻松。但在这个手法只有在使用了委托类的所有函数的时候才可以用,因为子类应该总是遵循超类的接口,如果写的委托函数太多,那就用去掉中间人这个手法让客户端自己调用委托函数;也可以将这两个类提取超类或者接口的手法,然后让这个类继承他们共同的超类或接口。而且记住继承没有委托灵活,受委托对象可变的情况下不能用继承。