架构师训练营 3 期 第二周作业

用户头像
ihiming
关注
发布于: 2020 年 12 月 06 日

架构师训练营 3 期 第二周作业

作业1

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



软件开发的新手期。写完一个功能模块A,供其他模块B调用,那么B的功能实现,就会依赖A。耦合严重。

而在真实项目种,随着一年年过去,需求不停的变化、深化 ,上面那种依赖会导致 返工、颠覆、废弃等情况,(可能还有更高层的问题,待以后填充)。

那么,如何解决上述问题呢?依赖倒置原则。

总体来说,一个模块,越概括、抽象、考虑全面(覆盖范围广),以后被重新修改的可能性越低。

那么就是 依赖倒置原则

  • 高层次模块,定规则定目标,通过接口实现——开关 本层只关心 “开(接口 = 目标)”、“关(接口 = 目标)”,怎么实现?,下一层去根据情况 自己具体实现。

  • 下一层去实现上一层的需求,并给下层定义好规则接口



爸爸指挥儿子,你帮我去拿杯水。只说了需求,要杯水;而不需要说,如果水杯里没水怎么办?我的被子放到哪里了?如果在饭店,你该找谁要水?……



好莱坞原则。

我只能猜:导演、上级需要什么,就只说他的需求,也就是下级的做事目标,然后下级去具体实现。

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



作业2 根据当周学习情况,完成一篇学习总结

一句话总结几个原则

1 开闭原则 OCP-Open/Closed Principle

开放功能扩展,封闭模块代码:目标是,扩展功能而不修改原模块。

2 依赖倒置原则 DIP -Dependency Inversion Principle

上层定规则、定目标;下层根据情况具体实现

3 里氏替换原则 LSP - Liskov Substitution principle

判断继承是否合理,就从行为的角度看看子类是否可以替代父类的位置

有时候,继承可能要改为 组合-委托。

4 单一职责原则 SRP -Single Responsibility Principle

这个类,只有一个原因让他变化

同一职责、同一功能,纳入一类。

避免调用、打包软件,出现浪费,浪费可耻,当然,更重要的是变脆弱、更难移植

有时候,实现SRP,是困难的。就需要用到ISP。

5 接口分离原则 ISP -Interface Segregation Principle

不要强迫模块,依赖不需要的方法,不要让不同的客户看到他们不需要的方法。



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

ihiming

关注

还未添加个人签名 2020.03.19 加入

还未添加个人简介

评论

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