架构师训练营 - 第二周 - 命题作业
作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则(Dependency Inversion Principle):高层模块(high-level modules)不要依赖低层模块(low-level)。高层模块和低层模块应该通过抽象(abstractions)来互相依赖。除此之外,抽象(abstractions)不要依赖具体实现细节(details),具体实现细节(details)依赖抽象(abstractions)。
好莱坞原则(Hollywood Principle) :Don't call me, I'll call you。好莱坞原则是用在系统的高层组件与底层组件之间。框架定义好接口,由底层实现,框架通过定义好的接口调用底层。
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
Tomcat 是运行 Java Web 应用程序的容器。我们编写的 Web 应用程序代码只需要部署在 Tomcat 容器下,便可以被 Tomcat 容器调用执行。按照之前的划分原则,Tomcat 就是高层模块,我们编写的 Web 应用程序代码就是低层模块。Tomcat 和应用程序代码之间并没有直接的依赖关系,两者都依赖同一个“抽象”,也就是 Servlet 规范。Servlet 规范不依赖具体的 Tomcat 容器和应用程序的实现细节,而 Tomcat 容器和应用程序依赖 Servlet 规范。
作业三:
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
评论