设计模式的六大原则
单一职责原则(Single Responsibility Principle)(SRP)
就一个类而言,应该仅有一个引起它变化的原因。
开闭原则(Open Close Principle)(OCP)
软件中的对象(类、模块、函数等)应该对于扩展是开放的,但对于修改是封闭的。
遵循开闭原则的重要手段是通过抽象
里氏替换原则(Liskov Substitution Principle)(LSP)
所有引用基类的地方必须能透明地使用其子类的对象
开闭原则和里氏替换原则往往是生死相依、不离不弃的,通过里氏替换来达到达到对扩展开放,对修改关闭的的效果。
这两个原则都同时强调了一个OOP的重要特性——抽象。因此,在开发过程中,运用抽象是走向代码优化的重要一步。
依赖倒置原则(Dependence Inversion Principle)(DIP)
依赖倒置原则指代了一种特定的解耦形式,使得高层次的模块不依赖于低层次的模块的实现细节的目的,依赖模块被颠倒了。
依赖倒置原则的几个关键点:
高层模块不应该依赖低层模块,两者都应该依赖其抽象;
抽象不应该依赖细节;
细节应该依赖抽象。
接口隔离原则(Interface Segregation Principle)(ISP)
定义:客户端不应该依赖他不需要的接口。
或
定义:类间的依赖应该是简历在最小的接口上。
接口隔离原则将非常庞大、臃肿的接口拆分成更小和更具体的接口,这样客户将只会知道他们感兴趣的方法,接口隔离原则的目的是系统解开耦合,从而容易重构、更改和重新部署。
Bob大叔,(Robert C Martin)在21世纪初将上述五个原则定义为SOLID原则。作为面向对象编程的5个基本原则。
当这些原则被一起使用时,他们使得一个软件系统更清晰、简单,最大程度地拥抱变化。SOLID被典型地应用在测试驱动开发上,并且是敏捷开发以及自适应软件开发基本原则的重要组成部分。
这几个原则最终可以化为这几个关键词:抽象、单一职责、最小化。
除了上述原则之外还有一个迪米特原则。
迪米特原则(Law of Demeter)(LOD)or 最少知识原则(Least Knowledge Principle)(LKP)
定义:一个对象应该对其他对象有最少的了解
英文解释:Only talk to your immedate friends:只与直接的朋友通信。
使系统有更低的耦合性和更好的扩展性。
网友评论