1.分解继承体系
如果某个继承体系承担了两个职责,那么分解这个继承体系
// 重构前
class 洗衣机{
设置脱水时间();
脱水();
设置洗衣时间();
洗衣();
}
class 海尔洗衣机: 洗衣机{
}
class 格力洗衣机: 洗衣机{
}
// 重构后
class 脱水机{
设置脱水时间();
脱水();
}
class 洗衣机{
// 洗衣机具有脱水机的功能
脱水机 脱水机;
public 洗衣机(脱水机 脱水机){ ... }
设置洗衣时间();
洗衣();
}
class 海尔洗衣机: 洗衣机{
}
class 格力洗衣机: 洗衣机{
}
2.将过程化设计转化为对象设计
意思是将一个过程化的代码改为一个对对象的调用过程,如下步骤:
将数据变为对象的数据,分解对数据操作的行为,并将这些行为移到对象中
3.提炼继承体系
你有某个类做了太多工作,那就试着去分解这个类,一般采用继承体系