架构师训练营 1 期第 2 周:框架设计
1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则(DIP,Dependency Inversion Principle):高层模块不能依赖低层模块,而是大家都依赖于抽象,抽象不能依赖实现,而是实现依赖抽象。倒置开发顺序和职责,先开发接口,接口属于高层模块,低层模块实现接口。高层模块根据自己使用场景进行接口设计。软件层次化,高层决定低层,高层被重用。
Don't call me, I'll call you -> Don't call 框架, 框架 will call 代码
在好莱坞,把简历递交给演艺公司后就只有回家等待。由演艺公司对整个娱乐项的完全控制,演员只能被动式的接受公司的差使,在需要的环节中,完成自己的演出。
一般情况下,高层通过调用底层接口实现其功能,高层依赖底层。在框架设计时,为了实现高层框架重用,通过在高层决定抽象接口,底层模块实现接口的抽象方式实现依赖倒置,类似于好莱坞演艺公司的做法,所以有时候依赖倒置原则又被称为好莱坞原则。
2. 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
提示:cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。
优化设计如下:
版权声明: 本文为 InfoQ 作者【Wee权】的原创文章。
原文链接:【http://xie.infoq.cn/article/5cac003cbcfa6fafb70b96381】。文章转载请联系作者。
评论