第二周作业
作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
1、高层模块不应该依赖底层模块,二者都应该依赖抽象。
2、抽象不应该依赖细节,细节应该依赖抽象。
3、依赖倒置的中心思想是面向接口编程。
4、依赖倒置原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础搭建的架构要稳定的多。
5、使用接口或抽象类的目的是指定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类来完成。
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
控制反转是Spring框架的核心。控制反转是依赖倒置原则的一种设计的思路,具体采用的方法就是所谓的依赖注入(Dependence Injection)。控制反转,是指依赖对象的获得反转,也就是一个解耦的过程。对象之间的依赖关系管理由具有对象来完成,会导致代码之间的耦合程度增强。因此对象之间的依赖关系,交由一个地方统一管理(IOC容器)。控制反转的实现由很多种方式,在Spring种,IOC容器就是实现这个模式的载体,依赖注入是最主要的实现。所谓依赖注入,即组件之间的依赖关系由容器在应用系统运行期来决定,也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。在对象生成或者初始化的时候将数据注入到对象中,也可以通过将依赖对象的引用注入到对象的数据域中(通过对象的引用完成方法的调用)。
Spring实现IoC的思路和方法:IoC统一集中处理对象之间的依赖关系。Spring实现IoC的思路是提供一些配置信息来描述类之间的依赖关系,然后有容器去解析这些配置信息,继而维护对象之间的依赖关系,前提是对象之间的依赖关系必须在类中定义好。
方法:
应用程序中提供类,提供依赖关系(属性或者构造方法)
将需要交给容器管理的对象通过配置信息告诉容器(xml,annotation,javaconfig)
把各个类之间的依赖关系通过配置信息告诉容器
容器启动时,会根据配置信息创建对象,会放到容器中
作业三:
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
评论