以委托取代继承(Replace Inheritance with Delegation)
1、某个子类只使用了超类接口中的一部分,或是根本不需要继承而来的数据
2、在子类中新建一个字段用以保存超类;调整子类函数,令它改而委托超类;然后去掉两者之间的继承关系
一、动机
超类中的许多操作并不真正适用于子类
二、操作
1、在子类中新建一个字段,使其引用超类的一个实例,并将它初始化为this
2、修改子类内的所有函数,让它们不再使用超类,转而使用上述那个受托字段。每次修改后,编译并测试
3、去除两个类之间的继承关系,新建一个受托类对象赋给受托字段
4、针对客户端所用的每一个超类函数,为它添加一个简单的委托函数
5、编译,测试
时间: 2024-10-22 14:15:46