第二周课后作业

发布于: 2020 年 06 月 17 日
  1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

         应答: 回答这个问题先解释下什么叫依赖, 依赖就是 A类中引用了B类, 比如“厨师”要切菜必须使用“菜刀”。 在 chef 类中引用 kinfe 类的kinfe 方法,实现切菜功能。 即 A 想使用B 达到某种目的。 

          这种简单的实现方式有个弊端: 如果B有改动,就会导致A 也要跟着改动。解决此问题使用依赖倒置原则,高内聚,松耦合。即 A 、B 的实体对象之间不相互依赖, 两者都依赖抽象。 接口或抽象类不依赖于实现类, 实现类依赖接口或抽象类。上面接口改造如下:

               

         另外依赖倒置原则也被称为好莱坞原则: ( don‘t call us, we‘ll call you ) 。 即高层制定接口规范,底层去实现。

  1. 请描述一个你熟悉的框架,是如何实现依赖倒置原则的

        应答: spring 框架的中IOC 容器, 即对象和对象依赖关系都是由容器来创建和管理。实现方式主要是通过依赖注入 和 依赖查找。 

 

  1. 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。

  • 作业三提示:cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。

 

         应答: 按照接口隔离原则,优化后如下:

          

用户头像

种个大西瓜

关注

还未添加个人签名 2018.03.29 加入

还未添加个人简介

评论

发布
暂无评论
第二周课后作业