编码原则

里氏代换原则也被称为李氏替换原则(Liskov Substitution Principle, LSP),其规定,任何父类可以出现的地方,子类也一定可以出现。

LSP 是继承复用的基石,只有当子类可以替换掉父类,软件的单位功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

这意味着子类在扩展父类的功能时,不应改变父类原有的行为。例如,如果有一个方法接受一个父类对象作为参数,那么传入该方法的任何子类对象也都应该能使得方法正常工作。

除了李氏替换原则外,还有其他几个重要的面向对象设计原则,它们共同构成了 SOLID 原则,分别是:

  1. 单一职责原则(Single Responsibility Principle, SRP),指一个类应该只有一个引起它变化的原因,即一个类只负责一项职责。这样做的目的是使类更加清晰,更容易理解和维护。

  2. 开闭原则(Open-Closed Principle, OCP),指软件实体(类、模块、方法等)应该对扩展开放,对修改关闭。这意味着设计时应该易于扩展,添加新功能时,尽量不修改现有代码,而是通过添加新代码来实现。

  3. 接口隔离原则(Interface Segregation Principle, ISP),指客户端不应该依赖它不需要的接口。这意味着设计接口时应该尽量精简,不应该设计臃肿庞大的接口。

  4. 依赖倒置原则(Dependency Inversion Principle, DIP),指高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。这意味着设计时应该尽量依赖接口或抽象类,而不是实现类。

最后更新于