【架构训练营】第二周作业

用户头像
Mr.hou
关注
发布于: 2020 年 06 月 16 日
【架构训练营】第二周作业

作业1

请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?



英文翻译是 Dependency Inversion Principle 简称DIP,也叫依赖反转



High-level modules shouldn’t depend on low-level modules. Both modules should depend on abstractions. In addition, abstractions shouldn’t depend on details. Details depend on abstractions.



高层模块不要依赖低层模块,高层模块和低层模块应该通过抽象来互相依赖,除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。



所谓高层模块和低层模块的划分,简单来说就是,在调用链上,调用者属于高层,被调用者属于低层。在平时的业务代码开发中,高层模块依赖底层模块是没有任何问题的。



依赖倒置原则的核心就是要我们面向接口编程,理解了面向接口编程,也就理解了依赖倒置。



相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建起来的架构比以细节为基础搭建起来的架构要稳定的多。在java中,抽象指的是接口或者抽象类,细节就是具体的实现类,使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成。



传递依赖关系有三种方式,接口传递,构造方法传递和setter方法传递,spring就是使用 构造方法和setter方法传递的



作业2

请描述一个你熟悉的框架,是如何实现依赖倒置原则的。



Tomcat是运行Java Web应用程序的容器。我们编写的Web应用程序代码只需要部署在Tomcat容器下,便可以被Tomcat容器调用执行。按照之前的划分原则,Tomcat就是高层模块,我们编写的Web 应用程序代码就是低层模块。Tomcat和应用程序代码之间并没有直接的依赖关系,两者都依赖同一个“抽象”,也就是Servlet规范。Servlet规范不依赖具体的Tomcat容器和应用程序的实现细节,而Tomcat容器和应用程序依赖 Servlet规范。

作业3

请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。



发布于: 2020 年 06 月 16 日 阅读数: 32
用户头像

Mr.hou

关注

还未添加个人签名 2018.09.22 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
好莱坞原则的定义可以思考一下
2020 年 06 月 21 日 09:08
回复
没有更多了
【架构训练营】第二周作业