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

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

微信截图_20201031210846.png

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

什么是依赖倒置原则

是什么:程序要依赖于抽象接口,不要依赖于具体实现

怎么做:高层模块依赖高层接口,低层模块去实现高层接口

为什么:依赖倒置是框架设计的重要原则,这样的设计方式,使高层模块更容易重用

倒置了什么:面向过程的开发,上层调用下层,上层依赖于下层,当下层剧烈变动时上层也要跟着变动,这就会导致模块的复用性降低而且大大提高了开发的成本。依赖倒置,倒置了模块或包的依赖关系(从上层以来下层,转变为下层依赖上层接口),倒置了开发顺序和职责

好莱坞原则:Don't call me, I'll call you

因为好莱坞原则与依赖倒置理念相同,所以依赖倒置又被称为好莱坞原则

用接口隔离原则优化 Cache 类

微信截图_20201031220005.png