架构师训练营 week2 课后练习
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则是指高层模块不要依赖低层模块。高层模块和低层模块应该通过抽象来互相依赖。除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。
总结起来主要有以下两点:
高层模块不应该依赖低层模块,二者都应该依赖抽象。
抽象不应该依赖具体实现,具体实现应该依赖抽象。
“不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)”这就是著名的好莱坞原则。在好莱坞,演员把简历递交给演艺公司后就只有回家等待。由演艺公司(高层)对整个娱乐项的完全控制,演员(低层)只能被动式的接受公司的差使,在需要的环节中,完成自己的演出。所以依赖倒置原则也被称为好莱坞原则,如Tomcat、Spring都是基于这个原则设计出来的,应用程序(低层)不需要调用Tomcat或者Spring(高层)这样的框架,而是框架调用应用程序。
举例:
Tomcat 是运行 Java Web 应用程序的容器,我们编写的 Web 应用程序代码只需要部署在Tomcat 容器下,便可以被 Tomcat 容器调用执行。按照之前的划分原则,Tomcat 就是高层模块,我们编写的 Web 应用程序代码就是低层模块。Tomcat 和应用程序代码之间并没有直接的依赖关系,两者都依赖同一个“抽象”,也就是 Servlet 规范。Servlet 规范不依赖具体的 Tomcat 容器和应用程序的实现细节,而 Tomcat 容器和应用程序依赖 Servlet 规范。
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
版权声明: 本文为 InfoQ 作者【花果山】的原创文章。
原文链接:【http://xie.infoq.cn/article/323307cd35d089d5c464dd045】。未经作者许可,禁止转载。
评论