第二周作业:设计原则
一、请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则就是高层模块不依赖低层模块,而是都依赖接口,这个抽象接口通常是由高层模块定义,
低层模块实现。
好莱坞原则:Don't call me, I will call you. 这个其实跟框架的设计原则是一致的,即不要来调用(call)我,我会调用(call)你。
二、请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
当前web开发中,通常会使用Tomcat作为运行Java Web应用程序的容器。在日常开发中,我们只要把开发好的代码部署到Tomcat容器下就可以被其调用执行。这里面Tomcat就是高层模块,我们开发的Web应用程序就是低层模块。它们之间没有直接的依赖关系,两者都依赖一个共同的servlet规范。这样就实现了依赖倒置原则。
更进一步说,Java 开发的 Web 应用也不需要依赖 Tomcat 这样的 Web 容器,只需要依赖 J2EE 规范,Web 应用实现 J2EE 规范的 Servlet 接口,然后把应用程序打包通过 Web 容器启动就可以处理 HTTP 请求了。这个 Web 容器可以是 Tomcat,也可以是 Jetty,任何实现了 J2EE 规范的 Web 容器都可以。这样也实现了依赖倒置原则。
三、请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。

评论