[架构师训练营] 2 依赖倒置
依赖倒置原则:依赖倒置的中心思想是面向接口编程,降低了客户与实现模块间的耦合。
接口由高层定义,高层决定低层,高层被重用!
依赖于抽象接口,不要依赖于具体实现。
定义抽象的规范,细节交给实现类。
依赖倒置原则与好莱坞原则
依赖倒置更多的是强调面向接口编程。
好莱坞原则是用在系统的高层组件与底层组件之间,高层组件定义调用接口,不直接调用底层组件。
如果强调接口由高层组件定义,依赖倒置和好莱坞原则其实就是一样的。
Spring DIP
控制反转(Ioc)体现依赖倒置原则,为高、低层模块之间提供了抽象。把创建对象的权利交给第三方Ioc容器来创建。避免高层模块直接创建低层模块的对象。
对象的创建通过依赖注入(DI)实现(Bean,注解/xml)。
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
提示:cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。
评论