写点什么

架构师训练营第 1 期 - 第二周 - 作业提交

用户头像
Todd-Lee
关注
发布于: 2020 年 09 月 26 日

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

依赖倒置原则的英文缩写是 DIP - Dependency Inversion Principle

高层不依赖低层,大家都依赖抽象

抽象不依赖实现,实现去依赖抽象

也就说,高层依赖的应该是高层的抽象,然后实现应该去依赖实现的抽象,和我们之前习惯的开发的顺序相反,我们之前都是开发可复用的底层模块,然后让高层去依赖调用,而依赖倒置是说,先开发高层,然后定义高层的抽象,高层的实现依赖高层的抽象,也就是定义接口,然后把这些接口交给底层去实现。称之为『倒置』。

为什么称之为好莱坞原则?

好莱坞的规则是说"Don't call me , I'll call you."

举个例子来说明,对于践行了依赖倒置原则的 Web 容器来说,Web 容器是一个框架,在未知以后会运行什么样子的代码的时候,设计了一套 web 容器的运行规范。当我们使用框架,实用 web 容器的时候,我们只需要按照这些规范,继承或者实现这些规范,那么我们的代码就会顺利被框架调用从而满足业务。

在这个例子中,

在开发框架(Web 容器)的时候,并不依赖我们的实现代码,只是依赖于设计的规范。

这就是依赖倒置的典型应用场景,因此也成为好莱坞原则。


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



  • 提示:cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。



用户头像

Todd-Lee

关注

还未添加个人签名 2017.10.17 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第 1 期 - 第二周 - 作业提交