架构师训练营作业(第二周)
作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则:
高层模块不能依赖低层模块,二者都应该依赖于抽象;
抽象不能依赖于具体实现,具体实现应该依赖于抽象
好莱坞原则:
Don't call me, i'll call you
强调高层对低层的主动作用
依赖倒置原则和好莱坞原则都由高层决定低层,举个例子,一个导演(高层)有个剧本,需要一个会演戏的人(抽象)来演某个角色,A、B、C(低层)都想来参演,那么他们首先必须会演戏,成为一个会演戏的人;高层决定完成一件事情,需要什么,低层去完成高层的需求。
实质就是面向接口编程
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
spring框架的控制反转实现了依赖倒置原则。
传统方式”中,当我们需要用到其他对象的资源时,就直接通过“new”关键字创建一个对象,都是对象主动去创建需要的依赖对象。这个过程中就容易造成对象之间关系之间依赖程度较高,导致类之间的耦合度高,不利于组件及代码的重用。
Spring中,组件之间的依赖关系由容器在应用系统运行期来决定,由容器动态地将具有依赖关系的实例注入到相应的组件或对象中。
实现方法:
提供类和类间的依赖关系
将需要管理的对象告诉spring容器(xml、yml等方式)
将对象间的依赖关系告诉spring容器
spring容器启动时,完成对象初始化和依赖注入
作业三:
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
评论