架构师训练营第二周作业
作业一:
1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则是指上层模块不依赖下层模块,而是上层模块和下层共同依赖上层模块提供的抽象接口。一般程序都是上层模块调用下层模块提供的服务,从而造成上层模块对下层模块的依赖。下层模块的改动会导致上层模块的改动。同时也不利于上层模块的代码复用。使用依赖导致原则,可以解耦上下层的依赖关系。
好莱坞原则:Don't call me, I will call you. 演员们不要直接联系好莱坞,只要提供自己的简历。好莱坞拍电影的时候会根据电影角色需要,主动联系演员去试镜。
对比依赖导致原则,演员们就是下层模块,只需要提供简历(上层模块定义的接口)。好莱坞就是上层模块,需要拍电影时,会主动根据简历(接口)找到(调用)演员(下层模块)。
2. 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
提示:cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。
作业二:根据当周学习情况,完成一篇学习总结
评论