根据开闭原则或(依赖倒置原则)控制翻转原则建立了稳定的抽象层。
抽象层中的抽象组件(元素)不能实例化,需要在运行时用子类对象进行替代。
这个抽象组件被替代的过程就是依赖注入。
依赖注入解决的是如何用子类替代父类的问题。
里氏替换原则,OCP作为OO的高层原则,主张使用“抽象(Abstraction)”和“多态(Polymorphism)”将设计中的静态结构改为动态结构,维持设计的封闭性。“抽象”是语言提供的功能。“多态”由继承语义实现。
里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。