架构作业 - 第 2 周
什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
高层模块不要依赖低层模块,高层模块和低层模块应该通过抽象来互相依赖。除此之外,抽象不要依赖具体实现细节,具体实现细节依赖抽象。
好莱坞原则:Don't call me, I'll call you. 倒转的层次依赖关系。
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
dubbo在框架层面定义了整个RPC的执行流程,并预留出很多的扩展点,详见官方文档说明。
程序可以通过继承并实现某个扩展点的类,然后在规定的配置文件名的配置项中标记扩展名和扩展类,让框架在启动后找到自定义的扩展类,并加载到RPC的执行流程中。
RPC框架作为高层,不依赖低层模块(即用户自定义程序),两者通过抽象来互相依赖(扩展点定义为抽象接口,程序的具体实现细节要依赖抽象)。另外,控制反转指RPC的流程由框架而非用户程序控制,这个过程中用户程序依赖高层模块,只改变某些扩展点的具体行为。
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
版权声明: 本文为 InfoQ 作者【铁血杰克】的原创文章。
原文链接:【http://xie.infoq.cn/article/4fbb288323aa5da2db32fac68】。未经作者许可,禁止转载。
评论