在面向对象的软件设计过程中,一切皆抽象成对象,在一个复杂的软件系统中有成千上万甚至百万千万级的对象,那么这么多对象怎么去有效的管理?怎么样去重复利用?怎么去科学合理的组合使其能够融为一体并且可以顺利的工作,这是在面向对象设计中着重需要考虑的问题,那么我们的前辈有没有给我们留下来一些科学的指导原则来处理我们的碰到的问题呢? 答案肯定是 “有”, 那就是面向对象的设计原则,面向对象的设计原则规范了我们设计一个对象因遵守的一些约束,我们合理的运用这些原则去设计每一个对象,那么你设计的对象才符合一个对象应该具有的样子,那么将这些对象按照面向对象设计的原则组装得到的系统才能顺利运行,少出Bug,易于维护,易于扩展。
面向对象有诸多的设计原则,但是通常我们提到的设计原则是其中最重要的五个设计原则,也是公认的面向对象设计的五大原则,也是通常所说的“S.O.L.I.D ”,这五个字母的缩写代表了如下的五个原则,即:
设计原則名称 |
英文描述 |
缩写 |
定义 |
S.O.L.I.D 缩写 |
单一职责原则 | Single Responsibility Principle | SRP | 一个类只负责一个功能领域中的相应职责 | S |
开闭原则 | Open-Closed Principle | OCP | 软件实体应对扩展开放,而对修改关闭 | O |
里氏代换原则 | Liskov Substitution Principle | LSP | 所有引用父类对象的地方能够使用其子类的对象 | L |
接口隔离原则 | Interface Segregation Principle | ISP | 使用多个专门的接口,而不使用单一的总接口 | I |
依赖倒转原则 | Dependence Inversion Principle | DIP | 抽象不应该依赖于细节,细节应该依赖于抽象 | D |
接下来我们逐一详细解析这五大原则。