作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则的包含如下的三层含义:
高层模块不应该依赖低层模块,两者都应该依赖其抽象
抽象不应该依赖细节
细节应该依赖抽象
每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块(一般是接口,抽象类),原子逻辑的组装就是高层模块。在Java语言中,抽象就是指接口和或抽象类,两者都不能被直接实例化。细节就是实现类,实现接口或继承抽象类而产生的类就是细节,可以被直接实例化。
模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的
接口或抽象类不依赖于实现类
实现类依赖于接口或抽象类
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
JDK 数据库驱动也是一种依赖倒置,由jdk定义好了Drive、Connection接口,每个数据库厂商都实现了这个抽象的接口,同时在DriveManager中会在合适的时机来通过抽象来调用厂商的数据库实现,这也是一种依赖倒置。