基于设计模式设计原则,一些更加具体的原则
代码设计的一些具体设计:
1.对可变性的封装原则
(1)一种可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里面。
同一种可变性的不同表象意味着同一个继承等级结构中的具体子类
继承应当被看作是封装变化的方法
(2) 一种可变性不应当与另一种可变性混合在一起, 设计模式的类图的继承结构一般
不会超过两层,否则就是两种不同的可变性混合在一起了。
2.抽象类:
(1) 具体类不是拿来继承的,抽象类提供了一个继承的出发点。
(2) 抽象类应当拥有尽可能多的共同代码
(3) 抽象类应当拥有尽可能少的数据结构
3.里氏替换原则的衍生物 coad原则
(1)子类是超类的一个特殊种类,而不是超类的一部分
is a 而非 has a
(2)永远不会出现将一个子类替换为另一个类的子类的情况
(3)子类具有扩展超类的责任,而不是替换掉或注销掉超类的责任
(4)只有在分类学角度上有意义时,才可以使用继承,不要从工具类继承
观点来源于 <<java与模式>> 一书