架构师训练营」第 2 周作业

发布于: 2020 年 06 月 17 日
架构师训练营」第 2 周作业

1.什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

依赖倒置原则:

一种用于描述要素之间的特定的调用关系,即框架作为调用者,实现作为被调用者。

  • 上层模块不应该依赖底层模块,它们都应该依赖于抽象。

  • 抽象不应该依赖于细节,细节应该依赖于抽象。

好莱坞原则是指演艺公司会去主动找合适的演员,而演员不可以找演艺公司,这就确定了游戏规则,谁更有主动权。依赖倒置原则和好莱坞原则都是用来规定谁更有主动权的两个原则,原理和目标都是一样的。

2.哪些框架是遵循依赖倒置原则的?

赖倒置原则定义:高层模块不应该依赖底层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

  • spring框架中有很多新概念,下面进行一个描述:

  1. 低层模块:不可分割的原子逻辑,可能会根据业务逻辑经常变化。

  2. 高层模块:低层模块的再组合,对低层模块的抽象。

  3. 抽象:接口或抽象类(是底层模块的抽象,特点:不能直接被实例化)

  4. 与接口或抽象类对应的实现类:低层模块的具体实现(特点:可以直拉被实例化)

spring 中 控制反转(Inversion of control):控制反转是一种OOD的思想,用来降低模块之间的耦合度。在设计过程中,将设计好的对象,解析到LoC容器来进行控制,当程序执行过程中需要用到其他资源时(对象,文件,常量…)时,通过依赖注入(Dependency injection)将需要的资源对象通过控制反转到所需要的对象中去。

3.请用接口隔离原则优化 Cache 类的设计,画出优化后的类图

如图所示:Cache仅仅包括3个接口:put/get/delete,应用程序client可以直接调用最基础的Cache;服务端除了使用基础Cache的功能,还会用到reBuild接口,即重建cache。此时,继承基础Cache实现一个ServiceCache,由CacheManagerAdapter作为适配器,实现CacheManager的reBuild接口。从而实现接口隔离原则。

接口隔离原则(Interface Segregation Principle, ISP),定义为:

  1. Clients should not be forced to depend upon interfaces that they don’t use. (客户端不应该依赖它不需要的接口。)

  2. The dependency of one class to another one should depend on the smallest possible interface. (类间的依赖关系应该建立在最小的接口上。)

用户头像

iedd

关注

还未添加个人签名 2018.01.18 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
这个封面有点眼熟。哈哈
2020 年 06 月 17 日 09:36
回复
没有更多了
架构师训练营」第 2 周作业