1.依赖倒转原则,也有翻译成依赖倒置原则的。依赖倒转原则,原话解释是抽象不应该依赖细节,细节应该依赖于抽象,这话绕口,说白了,就是针对接口编程,不要对实现编程。
2.里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别,也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化,简单的说,子类型必须能够替换掉它们的父类型。也正因为有了这个原则,使得继承复用成为了可能,只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上添加新的行为,比方说,猫是继承动物类的,以动物的身份拥有吃、喝、跑、叫等行为,可当某一天,我们需要狗、牛、羊也拥有类似的行为,由于他们都是继承与动物,所以除了更改实例化的地方,程序其他处不需要修改。正式有了里氏代换原则,才使得开放-封闭成为了可能。由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以扩展,
3.高层模块不应该依赖底层模块,两个都应该依赖抽象:(抽象不应该依赖细节,细节应该依赖抽象)
依赖倒转其实就是谁也不要依靠谁,除了约定的接口,大家都可以灵活自如。
4.依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,哪就是面向对象的设计,反之那就是过程化的设计了。