写点什么

第二周作业

用户头像
hunk
关注
发布于: 2020 年 11 月 01 日
一、请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

依赖倒置原则其实就是面向接口编程,接口是抽象的。高层和低层都依赖于接口编程,以此达到松耦合的目的。

这里面要特别注意低层不要理解为底层。

如何理解高层和低层呢?

我的理解是这样的,一般我们编程中用到的各种框架就是高层,自己基于框架实现的各种应用就是低层。框架很好的简化了我们应用的编程,应用的各种改变也不会破坏原有的框架,框架可以继续被更多的应用所重用。


为什么依赖倒置原则又称为好莱坞原则呢?

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 接口来使用。



发布于: 2020 年 11 月 01 日阅读数: 15
用户头像

hunk

关注

还未添加个人签名 2019.01.23 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
congfigservice可以命名为cachemanager,在语义上是一致的
2020 年 11 月 08 日 16:03
回复
没有更多了
第二周作业