架构师训练营 第 2 周作业
作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
答:
依赖倒置原则主要包含以下两点:
高层模块不依赖于低层模块。高层模块和低层模块应该通过抽象来互相依赖。
抽象不依赖于具体实现细节,具体实现细节依赖抽象。
好莱坞原则讲的是,你不要来call我,我们会来call你。这里一部好莱坞影片就好比是一个框架,高层模块就好比是一个好莱坞导演,他/她会根据影片的需要(框架的需求)来定义角色(接口或者抽象),然后找到并联系合适的演员(具体实现)来扮演这些角色,完成整部影片。这和依赖倒置原则如出一辙,一个框架由高层模块来决定接口或者抽象,来制定规范,来控制整个框架运行的流程,再由低层模块去实现这些抽象。
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
答:
例如 Spring Data JPA,
Spring Data JPA 依赖于 JPA (Java Persistency API) 规范,实现了 JPA 的持久层框架可以被 Spring Data JPA 来调用,例如 Hibernate 实现了 JPA 规范,可以通过 Spring Data JPA 来运行,但是 Spring Data JPA 并不依赖于 Hibernate。两者没有直接的依赖关系,但都依赖于同一个抽象。
作业三:
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
优化后的类图如下:
版权声明: 本文为 InfoQ 作者【Lingjun】的原创文章。
原文链接:【http://xie.infoq.cn/article/c874882a7b74e1f896570964a】。文章转载请联系作者。
评论