写点什么

第二周作业

用户头像
南宫煌
关注
发布于: 2020 年 06 月 16 日
第二周作业

题目:

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

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

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





依赖倒置原则是程序设计六大基本原则之一。六大基本设计原则:单一职责原则;开闭原则;里氏替换原则;依赖倒置原则;接口隔离原则;最少知道原则。



依赖倒置原则的定义是高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。



好莱坞原则

好莱坞原则:别调用我们,我们会调用你

作用:防止“依赖腐败”

解释:在好莱坞原则之下,我们允许低层组件将自己挂钩到系统上,但是高层组件会决定什么时候和怎样使用这些低层组件。换句话说,高层组件对待低层组件的方式是“别调用我们,我们会调用你”。



依赖倒置原则教我们尽量避免使用具体类,而多使用抽象。

而好莱坞原则是用在创建框架或组件上的一种技巧,好让低层组件能够被挂钩进计算中,而且又不会让高层组件依赖低层组件。二者的目标都是在于解耦,但是依赖倒置原则更加注重如何在设计中避免依赖。

好莱坞原则教我们一个技巧,创建一个有弹性的设计,允许低层结构能够互相操作,而又防止其他类太过依赖它们。



依赖倒置原则落地的最佳实践就是Spring。Spring核心就是IOC组件。Controller,Service+Impl,Mapper高层模块和低层模块之间都是依赖于接口,而不是具体实现类。这样降低了类与类之间的依赖。

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



接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。



接口隔离原则(ISP)的目的是系统解开耦合,从而容易重构,更改和重新部署。

类图:



UML代码:

@startuml

interface ICache{
Object get(Object key)
void put(Object key,Object value)
void delete(Object key)
}
interface IConfigCache{
void reBuild(Config conf)
}

ICache <|-- Cache
IConfigCache <|-- Cache


class Cache {
Object get(Object key)
void put(Object key,Object value)
void delete(Object key)
void reBuild(Config conf)
}

@enduml



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

南宫煌

关注

还未添加个人签名 2019.10.08 加入

还未添加个人简介

评论

发布
暂无评论
第二周作业