架构师训练营 第二周作业
作业一:请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则就是,高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口。抽象接口不应该依赖于具体实现,而具体实现则应该依赖于抽象接口。
“不要给我们打电话,我们会给你打电话(don't call us, we'll call you)”这是著名的好莱坞原则。 在好莱坞,把简历递交给演艺公司后就只有回家等待。 由演艺公司对整个娱乐项的完全控制,演员只能被动式的接受公司的差使,在需要的环节中,完成自己的演出。
高层模块就是演艺公司,演员就是底层模块。高层模块只需要定义好提供简历的接口,之后随时打电话调用底层模块就可以了。
其实依赖倒置原则中的隐含着,接口的定义应该由高层定义,因为高层负责更高层级的业务。所以虽然高层调用底层的功能,但是功能的接口却是应该由高层定义。这才有了反转。
作业二:请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
Tomcat运行Java Web程序,Tomcat就是高层模块,Java Web程序是底层模块。但是Tomcat不依赖于Java Web程序,他作为容器可以运行任何Java Web程序。只需要Java Web程序满足了Servlet接口规范就可以。高层和底层模块都依赖于Servlet规范,而高层不依赖于底层的具体实现。
作业三:请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
版权声明: 本文为 InfoQ 作者【孙有能希】的原创文章。
原文链接:【http://xie.infoq.cn/article/7bd970ac61028bf0733d8cc58】。未经作者许可,禁止转载。
评论