「架构师训练营」第 2 周作业

发布于: 2020 年 06 月 17 日
「架构师训练营」第 2周作业

作业一:

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

依赖倒置原则(Dependence Inversion Principle, DIP)

定义

High level modules should not depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details.Details should depend upon abstractions.

  1. 高层模块不应该依赖低层模块,两者都因该依赖抽象

  2. 抽象不应该依赖细节,细节应该依赖抽象

核心思想:面向接口编程

正是由于高层模块不在低层层模块的具体,从而可以让代码设计者或者架构师从全局的角度设计代码,而业务开发人员无需关注,框架层面的具体实现,只需要按照抽象出的“契约”(接口)来编程,就可以合作完成预期的任务。

低层模块不需知道高层模块如何以及何时调用低层的功能,从而实现了效果:

“Don't call me, I'll call you.”

所以有时又叫做“好莱坞规则”

作业二:

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

处理Spring、tomcat、jetty、junit 等框架中使用了依赖倒置原则

Dubbo 中的多个地方使用了依赖倒置原则:如 注册中心Registry, Comsumer 的invoker ,Provider 的invoker ,协议层的protocol,传输层的Codec, 序列化Serialization 等都是。

作业三:

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

优化后的类图

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

旭东(Frank)

关注

世事洞明皆学问,日思一刻,日拱一卒。 2011.04.01 加入

微信公众号:ThinkingInDev,记录工作过程中点滴思考。这里有坑,有料,有思,有想的开发工作日记

评论 (1 条评论)

发布
用户头像
惊现Dubbo高手!
2020 年 06 月 17 日 16:10
回复
没有更多了
「架构师训练营」第 2周作业