第二周作业
一、请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则其实就是面向接口编程,接口是抽象的。高层和低层都依赖于接口编程,以此达到松耦合的目的。
这里面要特别注意低层不要理解为底层。
如何理解高层和低层呢?
我的理解是这样的,一般我们编程中用到的各种框架就是高层,自己基于框架实现的各种应用就是低层。框架很好的简化了我们应用的编程,应用的各种改变也不会破坏原有的框架,框架可以继续被更多的应用所重用。
为什么依赖倒置原则又称为好莱坞原则呢?
Don't call me,I'll call you.
提到好莱坞,我们当然想到的是各种大片电影。这句“Don't call me,I'll call you”很生动的描述出好莱坞大导演和各种演员的关系。各种演员都趋之若鹜想去好莱坞参演电影,而导演们却有有很多选择。
导演拍电影,当然要找合适的演员,所以演员自己上门没用。
导演就类似于我们编程中的高层,演员就类似于低层,高层执行代码是通过抽象的接口去调用低层的实现,接口就类似于参演电影所需要的演员气质面孔和演技,而演员的功底就相当于低层的实现,每个演员的功底当然是不一样的。
导演需要有足够功底的演员,所以导演会去选择演员,而不是演员选择导演。所以是“Don't call me,I'll call you”。
二、请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
如图:
使用多继承优化 Cache 类。
CacheService 是需要操作使用 Cache 的服务,那么它只通过 CacheOperationInterface 接口来使用。
ConfigService 是需要修改 Cache 配置相关的服务,那么它只通过 CacheConfigInterface 接口来使用。
![](https://static001.geekbang.org/infoq/dc/dcee3e099e1341c740b65dc45d4853e7.png)
版权声明: 本文为 InfoQ 作者【hunk】的原创文章。
原文链接:【http://xie.infoq.cn/article/5199299684d4f3cc105074133】。未经作者许可,禁止转载。
评论 (1 条评论)