除了”子类用得上超类的所有函数”之外,合理的继承关系还有一个重要特征:子类的所有实例都应该是超类的实例
通过超类的接口来使用子类的实例应该完全不出问题
title | content |
---|---|
场景 | |
意义 | |
定义 | |
做法 | 首先(尽量)使用继承,如果发现继承有问题,再使用以委托取代超类。 |
注意 |
title | content |
---|---|
场景 | 客户通过一个委托来调用另一个对象。 |
意义 | |
定义 | 在服务类上建立客户所需的所有函数,用以隐藏委托关系。 |
做法 | |
注意 |
title | content |
---|---|
场景 | 某个类做了过多的简单委托动作。 |
意义 | |
定义 | 让客户直接调用受托类。 |
做法 | |
注意 |