面向对象的六大编程原则
1、开闭原则(Open Close Principle)
开闭原则的意思是:对扩展开放,对修改关闭。在程序需要扩展或修改时,不应直接改变原有代码,而是应该将代码模块化、组件化,对模块进行拔插使用。
比如,一个 TimeUtil ,我们最初编写时将其计时单位设置为了毫秒,后来接到新的需求,需要将计时单位精确到微秒。我们不能够直接去修改原有的 TimeUtil ,因为这会使之前依赖 TimeUtil 的部分出现错误。我们应该对其进行扩展,增加以微秒为单位的功能模块,供调用方在调用时进行选择。
在设计模式中,装饰器模式、适配器模式、策略模式可以帮助我们很好的实现这一点。
2、里氏代换原则(Liskov Substitution Principle)
里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
3、依赖倒转原则(Dependence Inversion Principle)
这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。也可以说依赖与标准而不依赖于实际实现,依赖倒转可以帮助我们对调用方和被调用方之间进行解耦,只要被调用方是在调用方依赖的标准范围内进行改变,调用方则可以在几乎不改动代码的情况下完成功能的变动。
4、接口隔离原则(Interface Segregation Principle)
这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。
5、迪米特法则,又称最少知道原则(Demeter Principle)
最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
6、单一职责原则(Single responsibility principle)
单一职责原则是指:一个类应该只有一个发生变化的原因,即一个类只负责一项职责。
如果一个类有多个职责,这些职责就耦合在了一起。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起会影响复用性。