SOLID 是五个面向对象编程的重要原则的缩写。另外,它也是每个开发者必备的基本知识。了解并应用这些原则能让你写出更优质的代码,变成更优秀的开发者。这个五个原则分别是:
- SRP(单一责任原则)
- OCP(开放封闭原则)
- LSP(里氏替换原则)
- ISP(接口分离原则)
- DIP(依赖倒置原则)
单一职责原则(SRP)
一个类应该只有一个引起改变的原因。
这个原则意味着一个类只应承担一个职责。如果我们的类承担的职责多于一个,那么我们的代码就具有高度的耦合性,任何对它的修改都会可能影响到多个地方,难以维护。遵循该原则可以降低代码的耦合性,提高代码的可维护性。
开闭原则(OCP)
软件实体(类,模块,函数等)应该对扩展开放,对修改封闭。
根据这一原则,一个软件实体能很容易地扩展新功能而不必修改现有的代码。这个原则的实现要点在于,使用合理的抽象构建一个实体的框架,功能细节则在实现中扩展。这个原则要求我们在设计软件的时候要预知未来可能发生的改变,合理的抽象实体框架。遵循该原则可以提高代码的可维护性和复用性。
里氏替换原则(LSP)
程序里的对象可以在不影响系统正常运作的条件下被被它的子类实例所替换。
简单来说,这个原则要求我们在继承一个父类的时候,不能修改父类中已经实现的方法。遵循该原则可以提高代码复用性和稳定性,降低系统出现问题的出现几率。
接口隔离原则(ISP)
一个类所定义的接口中不应存在该类不需要用到的方法。
这个原则要求接口应当被设计成多个专用的接口而不是一个通用接口。不遵循这个原则意味着在我们在实现一个接口的时候会依赖很多我们并不需要的方法,但又不得不去定义。遵循该原则可以降低代码的耦合度,后期更易于代码重构。
依赖倒转原则 (DIP)
高层次的模块不应该依赖于低层次的模块,二者都应该依赖于抽象。
抽象不应该依赖于细节,细节应该依赖于抽象。
这个原则简单来说,就是面向接口编程,它要求一个特定的类不应该直接依赖于另外一个类,但是可以依赖于这个类的抽象(接口)。使用该原则可以降低类与类之间的耦合度,提高我们代码的复用性。
总结
遵循 SOLID 原则可以帮助我们构建高质量、易扩展、易维护的软件系统,但过分的设计会让简单的问题复杂化,所以我们的开发应当是从实际出发,灵活应用 SOLID 原则。