处理概括关系
11.11 Replace Inheritance with Delegation(以委托取代继承)
某个子类只使用超类接口中的一部分,或是根本不需要继承而来的数据。在子类中新建一个字段用以保存超类;调整子类函数,令它改而委托超类;然后去掉两者之间的继承关系。
11.12 Replace Delegation with Inheritance(以继承取代委托)
你在两个类之间使用委托关系,并经常为整个接口编写许多极简单的委托函数。让委托类继承受托类。
如果你并没有使用受托类的所有函数,那么就不应该使用该项重构,因为子类应该总是遵循超类的接口。
受托对象被不止一个其他对象共享,而且受托对象是可变的,这种情况下,也不能使用该项重构,因为这样就无法共享数据了。