[架构师训练营] 2 依赖倒置

用户头像
悬浮
关注
发布于: 2020 年 06 月 20 日
  • 依赖倒置原则:依赖倒置的中心思想是面向接口编程,降低了客户与实现模块间的耦合。

接口由高层定义,高层决定低层,高层被重用!

依赖于抽象接口,不要依赖于具体实现。

定义抽象的规范,细节交给实现类。

  • 依赖倒置原则与好莱坞原则

依赖倒置更多的是强调面向接口编程。

好莱坞原则是用在系统的高层组件与底层组件之间,高层组件定义调用接口,不直接调用底层组件。

如果强调接口由高层组件定义,依赖倒置和好莱坞原则其实就是一样的。

  • Spring DIP

控制反转(Ioc)体现依赖倒置原则,为高、低层模块之间提供了抽象。把创建对象的权利交给第三方Ioc容器来创建。避免高层模块直接创建低层模块的对象。

对象的创建通过依赖注入(DI)实现(Bean,注解/xml)。



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



提示:cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。





用户头像

悬浮

关注

还未添加个人签名 2018.10.24 加入

还未添加个人简介

评论

发布
暂无评论
[架构师训练营] 2 依赖倒置