面向对象设计原则课后作业
1、请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
什么是依赖倒置原则
a.上层模块不应该依赖底层模块,它们都应该依赖于抽象。
b.抽象不应该依赖于细节,细节应该依赖于抽象。
调用者(高层)和被调用者(底层)的依赖,用于解除这个依赖,采用抽象来解决这个依赖,底层通过实现这个抽象来解除依赖。
为什么有时候依赖倒置原则又被称为好莱坞原则
在模块的依赖关系设计,采用依赖倒置原则,上层模块不应该依赖底层模块,它们都应该依赖于抽象,依赖于抽象,对接口和抽象编程,不针对实现编程,接口的所有权是被倒置的,也就是说,接口被高层模块定义,高层模块拥有接口,底层模块实现接口。不是高层模块依赖底层模块的接口,而是底层模块依赖高层模块的接口,从而实现依赖关系的倒置。 正好遵守了好莱坞原则: Don't call me,I’ll call you, 实现倒转的层次依赖关系。
2、请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
Spring是一个开源的容器框架,Spring可以接管Web层,业务层,Dao层,持久层组件。主要负责创建Bean以及维护Bean之间的关系。
Spring核心容器:核心容器提供 Spring框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。
BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开,实现依赖倒置原则。DI(Dependency Injection依赖注入)是IOC的实现方式,常见的DI依赖注入的方式有三种:setter方法注入,构造器方法注入,接口注入
3、请用接口隔离原则优化Cache类的设计,画出优化后的类图。
适配器
多继承
评论