写点什么

架构师训练营第二章作业

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

依赖倒置原则(DIP Dependency Inversion Principle)就是高层模块不能依赖低层模块,而是大家都依赖于抽象;抽象不能依赖实现,而是实现依赖抽象。

依赖倒置原则是要依赖于抽象,不要依赖于实现。要针对接口编程,不要针对实现编程。传统的过程性系统的设计办法倾向于使用高层次的模块依赖于低层次的模块,抽象层依赖于具体层次。倒置原则就是把这个错误的依赖关系倒转过来。高层定义接口,低层实现接口,低层按照高层的要求实现,而不是低层实现编程给到高层来调用。

好莱坞原则是Don't call me, I'll call you.(不要给我们打电话,我们会给你打电话),这个思想和依赖倒置原则一致,都是高层不依赖低层,低层按照高层定义的接口(规则)实现。



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

Spring实现依赖倒置原则是通过控制反转(Ioc)和依赖注入(DI)实现的,Ioc是一种OOD的思想,用来降低模块之间的耦合度。在设计过程中,将设计好的对象,解析到Ioc容器中进行控制,当程序执行过程中需要用到时,通过DI将需要的资源对象通过Ioc反转到所需的对象中去。

DI是对Ioc的具体技术实现,实现过程中是通过反射和工厂模式实现,由Ioc容器在运行时动态注入对象。



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

RemoteClient接口,定义了reBuilder接口。RemoteCache继续了Cache类,实现了RemoteClient接口。

本地应用使用Cache类,远程应用使用RemoteCache,可调用rebuild接口。



用户头像

饶军

关注

还未添加个人签名 2020.03.23 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
uml并没有准确体现接口隔离原则
2020 年 06 月 23 日 21:23
回复
没有更多了
架构师训练营第二章作业