你不会还不懂依赖倒置吧?赶紧来看看
问题一:请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
1.高层模块不应该依赖底层模块,底层模块需要依赖高层模块;
2.接口或抽象不依赖于实现类,但实现类依赖接口或抽象类;
3.You don't call me, I will call you.
问题二:请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
在spring框架中,依赖倒置原则被作为一个核心的思想用于处理依赖方与被依赖方的关系。在spring中,依赖方不需要再关心被依赖方的创建与管理,当依赖方需要时由IOC容器将需要的依赖对象通过依赖注入的方式注入到对象中。
问题三:请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
提示:cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。
结果如下:
应用程序需要实现CacheTemplate类,系统远程调用需要实现CacheManage类。
版权声明: 本文为 InfoQ 作者【hellohuan】的原创文章。
原文链接:【http://xie.infoq.cn/article/6a3de205e9a9a79cf52b920d6】。文章转载请联系作者。
评论