架构师训练营第二周作业
什么是依赖倒置原则
依赖倒置原则是指让高层模块不依赖低层模块而是依赖接口,由高层决定低层,从而实现高层的复用。
依赖倒置原则的实现:
在高层模块定义接口,在接口中声明高层模块需要调用的方法
高层模块应用程序调用接口实现业务逻辑
低层模块实现接口
如上图,左侧涉及高层模块依赖低层模块,右侧低层模块依赖高层模块,从左侧到右侧,依赖关系已经发生了倒置。
运行时容器实例化低层模块并注入高层模块,从而使高层模块能够调用低层模块的具体实现,这也意味着只要注入不同低层模块的实例,就能动态改变运行结果,而这个过程中高层模块无需改变,也就达到了高层模块复用的目的。
依赖倒置原则是框架设计的基础,框架是高层模块,开发人员实现具体的业务逻辑是低层模块,基于依赖倒置原则,可以实现框架的复用,同时由于框架中为开发人员定义了相应接口,框架能够约束业务逻辑的实现,这样可以让项目更规范,逻辑更清晰。
为什么依赖倒置原则又称为好莱坞原则
好莱坞原则:Don't call me, I'll call you.
这句话符合依赖倒置原则中高层模块和低层模块之间的关系,低层不会调用高层,高层通过接口执行低层代码
接口隔离原则优化 Cache 类的设计
如图,Service 依赖 Cache 接口,只能调用 get、put、delete 方法,System 依赖 RebuildableObject 接口,只能调用 rebuild 方法。
运行时,容器实例化 RebuildableCache 类,并注入给 Service,RebuildableCache 实例向上塑形为 Cache 实例,对 Service 可见的仍然只有 get、put 和 delete 方法;同理,容器给 System 注入的是 RebuildableCache 实例,对 System 来说,能看到的也只有 RebuildableObject 的 rebuild 方法。
版权声明: 本文为 InfoQ 作者【文智】的原创文章。
原文链接:【http://xie.infoq.cn/article/44537971a14cf4fa67a58e230】。未经作者许可,禁止转载。
评论