架构师第二周
一、请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
好莱坞原则:Don't call me, I'll call you.
一般的使用场景是低层(框架)调用高层(业务)的过程。常用的实现技术是依赖注入和依赖查找。无论是依赖注入还是依赖查找,指的是低层找到高层的过程。通常的做法是:
1. 低层定义抽象,并面向抽象进行编码。
2. 高层实现抽象,完成实际的业务过程。
这也恰好符合了依赖倒置原则的要求:
1. 高层不依赖低层,他们都依赖抽象。
2.抽象不依赖具体,具体依赖抽象。
二、请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
golang 著名的http框架 fasthttp(github 12k stars), 主要流程实现方式:
1. 业务逻辑实现定义为一个抽象RequestHandler
2. 业务方法(高层)实现该抽象RequestHander
3. 框架(低层)主要逻辑Server,通过WorkerPool间接依赖于RequestHandler
Server --------> WorkerPool -------> RequestHandler
总结:
fasthttp框架,低层定义RequestHandler, 业务(高层)实现RequestHandler,满足了依赖倒置的原则
1. 高层不依赖低层,他们都依赖抽象。
2.抽象不依赖具体,具体依赖抽象。
三、请用接口隔离原则优化 Cache 类的设计,画出优化后的类图
版权声明: 本文为 InfoQ 作者【麻辣】的原创文章。
原文链接:【http://xie.infoq.cn/article/0164677c5286b40190587fb16】。未经作者许可,禁止转载。
评论