架构师训练营第 2 周作业
作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
1、上层模块不应该依赖底层模块,它们都应该依赖于抽象。
2、抽象不应该依赖于细节,细节应该依赖于抽象。
依赖倒置原则通过抽象(抽象类或接口)使各个类或模块的实现彼此独立,不相互影响,实现模块间的松耦合。
好莱坞原则:Don't call me, I'll call you
框架定义好接口,由底层实现,框架通过定义好的接口调用底层。
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
Slf4j定义了抽象的Logger方法,底层可通过Log4J、Logback等实现。客户端在实现日志功能时,依赖于Slf4j抽象出来的日志方法,然后可以单独配置具体的日志实现框架,客户端代码不依赖与具体的日志实现。
依赖倒置原则并不局限于客户端定义抽象/接口,也可以是框架层面或者更高层面定义的接口(比如tomcat之于Java EE)、后期抽象的接口(Log4j之于Slf4j)
作业三:
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
将Cache中的方法定义为CacheClient和CacheManager两个接口,CacheManager负责缓存的重建,供远程服务调用,CacheClient负责缓存数据的增删查改,供本地客户端调用,客户端无法通过CacheClient调用rebuild方法
版权声明: 本文为 InfoQ 作者【Season】的原创文章。
原文链接:【http://xie.infoq.cn/article/ddae1ef766292ecc8037d4ec9】。未经作者许可,禁止转载。
评论