架构设计 (作业)
一、请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则:DIP(Dependency Inversion Principle)
高层模块不能依赖低层模块,而是大家都依赖于抽象,这个抽象可以是接口或规范或配置。开发中,高层模块不用再等低层模块完成再继续,而是通过抽象,高层模块调用这个接口,低层模块也不依赖高层模块,低层模块去实现这个接口即可,注意的是这个接口要属于高层模块。平常开发中,高层模块Service层调用低层模块DLL层接口,这并不属于依赖倒置,因为接口在低层模块,高层依赖了低层模块,只是依赖的接口而已。对于依赖倒置而言,Service层定义一个接口,Service层去调用,而DLL层去实现这个接口即可
抽象不能依赖实现,而是实现依赖抽象
好莱坞原则:Don't call me,I'll call you
二、请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
Cache类中get获取缓存、put新增或修改缓存、delete删除缓存、reBuild根据配置更新相关缓存服务器上的缓存数据。rebuild方法中需要依赖put或delete等方法,也就是从类的单一职责上分析,这几个功能不能分离。但是对于普通缓存使用的客户端只需要关注get、put和delete方法即可,不需要也不能看到reBuild方法,而对于缓存管理的客户端来说只需要关注reBuild方法,所以使用接口隔离原则,做出如下类图
版权声明: 本文为 InfoQ 作者【胡家鹏】的原创文章。
原文链接:【http://xie.infoq.cn/article/a0723497dbfae9cf87cae472b】。未经作者许可,禁止转载。
评论