架构师训练营第二周课后作业
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
在解决一个复杂的问题时,通常需要把问题拆分成数个部分,并分阶段完成,以降低复杂度。
在人们自然的逻辑中,这些部分之间存在的依赖关系往往是先完成被依赖的部分,然后根据依赖关系逐层完成。就像一颗树,总是先有根,主干依赖根,枝叶依赖主干,叶子依赖枝叶。实施起来也按照类似的依赖关系。
然而,在软件开发中,为了提升软件开发效率,对工程结构进行约束,往往会抽象出各种各样的编程框架。这些框架完成了输入输出处理的核心流程相关逻辑,而本身不带任何业务逻辑,业务逻辑由后期的业务开发者按照指定的规则和约束填充进去。与自然的依赖逻辑相比,就像倒置了依赖关系。
依赖倒置原则的核心思想是高层不依赖低层,低层不依赖高层,二者依赖共同的高层决定的抽象,使用抽象进行松耦合。该原则常用于指导框架设计,映射到框架设计中时,依赖倒置原则中所谓的高层即指框架本身,因需满足一定的通用性其抽象层次较高,而低层是指业务逻辑代码,其抽象层次较低。两者之间依赖框架/通用标准的共同约束进行松耦合。
“不要给我们打电话,我们会给你打电话(don't call us, we'll call you)”这是著名的好莱坞原则。在好莱坞,把简历递交给演艺公司后就只有回家等待。由演艺公司对整个娱乐项的完全控制,演员只能被动式的接受公司的差使,在需要的环节中,完成自己的演出。
在代码执行过程中,按照统一规范编写的业务代码会被框架在合适的时机调用,业务代码本身不主动调用框架。这好莱坞原则里演艺公司和演员之间的关系是类似的。
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
版权声明: 本文为 InfoQ 作者【万有引力】的原创文章。
原文链接:【http://xie.infoq.cn/article/eaeb8f261d3ffb40a8ba5e995】。未经作者许可,禁止转载。
评论