首先是设计模式的三个基本原则:
1. 针对接口编程,而不针对具体实现编程。
针对接口编程,可以使各个实体(模块、对象)之间的耦合性更松,只要保证接口的稳定性,那么依赖接口的各方发生变化时,均不会影响其他模块。
2. 优先使用对象组合而不是继承
由于继承中父类和之类之间的层次关系存在,因此若对父类行为做修改,则很有可能影响到子类。例如对父类接口进行扩展,则子类也必须做相应变化。这就违反了设计中的开放-封闭原则,即对扩展开放对变化封闭。
3. 对变化进行封装,明确类的职责,从而降低类之间的耦合度。
其次,设计过程中存在几个原则:
1. 单一职责原则: 即理论上,一个类应该只有一种引起该类变化的原因。一个类应只有一个职责,避免类中过多任务的积累(过多积累且当有需求变化时,修改这一个复杂类的难度会大大增加);避免重复实现的发生。
2. 开放封闭原则:对扩展开放,对变化封闭。即新的需求通过增加代码而不是更改代码来实现。
3. 里氏转换原则:子类可以替代父类。
4. 高层模块不应该依赖底层模块,二者都应该依赖抽象(接口)。