面向对象的六大原则

2020-04-01  本文已影响0人  JunL_Dev
Start

前言

在应用开发中,最难的不是完成应用的开发工作,而是在后续的升级、维护过程中让应用系统能够拥抱变化。拥抱变化也就意味着在满足需求且不破坏系统稳定性的前提下保持高可扩展性、高内聚、低耦合,在经历了各个版本的变更之后依然保持清晰、灵活、稳定的系统架构。当然这是一个比较理想的情况,但我们必须要朝着这个方向去努力,那么遵循面向对象六大原则就是我们走向灵活软件之路所迈出的第一步。

1. 单一职责原则一一优化代码的第一步

单一职责原则(SRP:Single responsibility principle)又称单一功能原则,定义是:就一个类而言,应该仅有一个引起他变化的原因。简单来说,一个类中应该是一组相关性很高的函数、数据的封装。

2. 开闭原则一一让程序更稳定、更灵活

开闭原则(OCP:Open Close Principle),它是 Java 世界里最基础的设计原则,他指导我们如何建立一个稳定的、灵活的系统。定义是:在软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的*”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查单元测试以及诸如此类的用以确保产品使用质量的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。

3. 里氏替换原则一一构建扩展性更好的系统

里氏替换原则(LSP:Liskov Substitution Princiole),定义是:如果对每一个类型为 S 的对象 O,都有类型为 T 的对象 O2,使得以 T 定义的所有程序 P 在所有的对象 O1 都替换成 O2 时,程序 P 的行为没有发生变化,那么类型 S 是类型 T 的子类型。这个描述不好理解,换一种说话就是:所有引用基类的地方必须能透明地使用其子类的对象。

4. 依赖倒置原则一一让程序拥有变化的能力

依赖倒置原则(DIP:Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

5. 接口隔离原则一一系统有更高的灵活性

接口隔离原则(ISP:Interface Segregation Principe),定义是:客户端不应该依赖它不需要的接口。另一种定义是:类间的依赖关系应该建立在最小的接口上。接口隔离原则将非常庞大、臃肿的接口拆分成更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的犯法。接口隔离原则的目的是系统解开耦合,从而容易重构、更改和重新部署。

6. 迪米特法则一一更好的可扩展性

迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD。也称为最少知识原则(Least KnowLedge Principle)。

申明:开始的图片来源网络,侵删

上一篇下一篇

猜你喜欢

热点阅读