摘取代码中变化的行为,形成接口 在设计基类的时候,如果该类某个成员方法在子类中的实现变化差别比较大(一部分子类实现该方法是相同的),作为基类有两个问题:一是该方法不再通用:二是子类如果重写该方法,存在代码重复的情况.如果只是把该方法设计成抽象方法,只能解决第一个问题,无法解决第二个问题.对于这类问题,最好的做法是把这种方法设计为接口. 多用组合,少用继承 针对第一条原则,把这种接口作为抽象类的属性,可以有效减少代码的冗余. 针对接口编程,不依赖于具体实现 如果对一个类型有依赖,应该尽量依赖接口,…