第二周作业
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则
高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
1)高层模块不应该直接依赖于底层模块的具体实现,而应该依赖于底层的抽象。换言之,模块间的依赖是通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。
2)接口和抽象类不应该依赖于实现类,而实现类依赖接口或抽象类。这一点其实不用多说,很好理解,“面向接口编程”思想正是这点的最好体现。
好莱坞原则(Hollywood Principle):别打电话给我们,有事我会打电话给你。
好莱坞原则是用在系统的高层组件与底层组件之间,
高层组件对待低层组件的方式是“别调用我们,我们会调用你”。
2. 请描述一个你熟悉的框架,是如何实现依赖倒置原则的?
Spring框架中的控制反转(IOC)就是依赖倒置原则(DIP)的具体实现方式。
IOC为高、低层模块之间提供了抽象,就是说在系统中,被依赖对象(底层对象)不在依赖的模块中(高层模块)中直接创建对象,而是把创建对象的权利交给IOC容器来创建,然后再把对象交给依赖的模块使用。
在Spring 中提供的依赖注入(DI),就是IOC的一种重要实现手段,它将依赖的对象的创建权交给外部来处理,而不是在自身new出一个实例。
3、请用接口隔离原则优化Cache类的设计,画出优化后的类图。
评论