重新复习了一下面向对象设计六大原则。六大原则结合23种设计模式有助于我们编写低耦合,高扩展性的优质代码。
面向对象六大原则
- 单一职责
每个类是由一组有密切关系的实例变量和方法的集合。(对于一个类而言,应该仅有一个引起它变化的原因。简单讲,一个类中应该是一组相关性很高的函数、数据的封装。) - 接口隔离
客户端不应该依赖它不需要的接口。类之间的关系应建立在最小的接口上。
将非常庞大臃肿的接口拆分成更小更具体的接口。 - 里氏替换
父类出现的地方一定能够用子类替换,反之,不一定。 - 依赖倒置
高层模块(调用端)不依赖低层(具体实现类),细节(实现类)依赖抽象(抽象类或接口),抽象不依赖细节。
模块间依赖通过抽象发生,实现类之间不发生直接的依赖关系。依赖关系通过抽象类或接口产生。 - 迪米特
也称最少知识原则。一个类应该对自己需要耦合或调用的类知道的最少。调用者或依赖着只需知道它需要的方法即可,其它可以一概不管。 - 开闭原则
对扩展开放,对修改封闭。
尽量通过扩展类迎接变化。 程序一旦开发完成,程序中一个类的实现只应该因错误而修改,新的或者改变的特性应该通过建立不同的类实现,新建的类可以通过继承类实现。