依赖倒置原则

用户头像
Z冰红茶
关注
发布于: 2020 年 06 月 16 日

一、什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则

依赖倒置原则, DIP(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

好莱坞原则,“不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)”。

首先从句型结构上是一样的,“不要。。。,要。。。”,“不要依赖具体实现,依赖抽象”,“不要给我们打电话,等我们会给你打电话”。

但是,其实“依赖倒置原则”跟“好莱坞原则”是不相关的。“依赖倒置原则”中的接口和实现在某方面说是一类东西,是可以相互替换的,而“好莱坞原则”是主宾之间的替换,形容为“倒置原则”更贴切。“依赖倒置原则”的主要说的“依赖”的倒置替换。例如:有A、B、C三个类,A调用B、C,即A依赖B、C,而B、C有相似的功能,那么A不能直接调用B、C,而是应该抽象B、C的相似功能为D,然后A调用D也就是A依赖D。这个例子中是具体的实现B、C和抽象的D之间的“依赖倒置”。

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

Spring中的Controller、Service、Repostory等之间的依赖是严格按照依赖倒置原则实现的。每层之间都依赖的抽象接口。

三、接口隔离原则优化 Cache 类的设计,画出优化后的类图

interface CacheBuilder{

void build(Config conf);

interface CacheExecutor{

Object get(Object key);

void put(Object key,Object value);

void delete(Object key);

class Cache implement CacheBuilder,CacheExecutor{

Object get(Object key){}

void put(Object key,Object value){}

void delete(Object key){}

void build(Config conf){}



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

Z冰红茶

关注

还未添加个人签名 2018.09.17 加入

还未添加个人简介

评论

发布
暂无评论
依赖倒置原则