写点什么

架构师训练营第二期 Week 2 作业

用户头像
bigxiang
关注
发布于: 2020 年 11 月 01 日
  1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

依赖倒置原则(Dependency Inversion Principle)是 OOP 设计 5 大原则之一,意思是高层模块不应该依赖于低层模块,他们应该依赖于抽象。这个定义不太直观,我们在设计的时候只需要注意模块 A 如果直接调用模块 B,那么 B 在修改或需要被替换时不可避免要修改 A 的代码,所以我们会在模块 A 中提供一个抽象接口 C,让模块 B 去实现接口 C,即让模块之间只依赖抽象,从而实现依赖倒置。


好莱坞原则就是 Don't call us, we will call you. 以前我也有所了解,但是总觉得似是而非,现在查了资料后我并不认为依赖倒置就是好莱坞原则。在https://en.wikipedia.org/wiki/Inversion_of_control上有这样说:


Inversion of control is sometimes facetiously referred to as the "Hollywood Principle: Don't call us, we'll call you".


貌似 IoC 和 DIP 的概念人们通常会混淆,他们是解决依赖问题的不同维度的方法。IoC 更关注于调用的方向,而不是抽象。而好莱坞原则从字面上翻译更关注于方向。所以我也更倾向于 wikipedia 的说法呢。不过我觉得我们在解决问题的时候不用过于纠结这些字面的理解,总之要为了让程序更容易被修改。


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




用户头像

bigxiang

关注

还未添加个人签名 2018.03.21 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第二期 Week 2 作业