“开-闭”原则
一个软件实体应当对扩展开放,对修改关闭。
对可变性的封装原则:找到系统的可变因素,将其封装起来。
- 可变性应当封装到对象中
- 不同种的可变性不能混合到一起
抽象化是关键,利用抽象类和接口恰当设计系统的抽象层
里氏代换原则:任何基类出现的地方,子类都可以出现
依赖倒转原则:要依赖与抽象,不要依赖于具体实现
合成/聚合复用原则:要尽量使用合成/聚合,而不是继承关系达到复用的目的。
迪米特法则:一个软件实体应该与尽可能少的其他实体发生相互作用。
接口隔离原则:应为客户提供尽可能小的单独的接口,而不要提供大的总接口。
java.util.Calendar只提供了格力高历的变量和方法,无法容纳阴历,是不符合“开-闭”原则的。