架构师训练营第 2 周作业
作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
面向过程的编程,上层依赖与下层实现,依赖倒置原则对这个依赖关系进行解耦,要求上层与下层都依赖于抽象的接口,又上层来定义接口,面向接口编程,不管下层的实现怎么变化,上层的逻辑都不需要变化。
好莱坞原则:请不要打我电话,我会打你电话(don't call us, we'll call you),讲的是好莱坞强调高层的主导作用,由好莱坞决定演员需要做的事,演员只关注自己要做的本份工作,好莱坞进行全局统筹。根框架设计中的依赖倒置原则,要求高层进行全局定义,底层业务来实现需求,并且不影响任何框架层面的逻辑。
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
Spring 框架实现 IOC 容齐,通过 Autowired 注解的方式来调用接口,接口的实现通过 IOC 来注入,从而可自由切换实现。Controller 依赖于 Service 接口,而不依赖于实现。
作业三:
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
可切换缓存实现类图:
1、ICache 接口 提供给应用端
2、IReBuilder 接口 提供给管理端
3、基于 ICache 实现各种缓存
4、ReBuildableCache,同时实现 ICache 及 IReBuilder 接口,通过 config 对象来识别使用不同的缓存实现
评论