第 2 周 - 命题作业

用户头像
willson
关注
发布于: 2020 年 11 月 01 日

作业一:

  • 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

答:

1、依赖倒置原则就是指实现要依赖于抽象的设计原则。说得更直白一些,就是要在实际的开发工作中,先将系统中的角色、模块等对象进行抽象,梳理好它们之间的关系、定义好它们的接口,最后再去填充各个函数内部的实现。而非一上来就从某个具体实现细节开始撸代码,从而导致上层的接口定义被具体实现所影响,一片混乱。

2、依赖倒置原则和好莱坞原则并不能完全等价,我认为题目的表述有问题。个人观点认为好莱坞原则是在依赖倒置的基础上加强了对于调用关系的约定,这样更加便于框架来控制和管理其下的组件。

3、 好莱坞原则。

演员把简历等信息,交给演艺公司后。无法主动申请演出,只能在家等待演艺公司的召唤。当演艺公司计划拍电影,向演员提供相应岗位。而演员得到公司提供的工作机会后,去相应岗位完成自己的演出。



公司提供工作岗位: 由高层模块设计接口。

公司寻找符合岗位要求的人,而不是根据演员更改自己的标准: 低层模块依赖于高层模块设计的接口。

演员无法主动工作: 低层模块无法向上调用,只能等待被调用。

演员需要履行工作职责,进行演出: 低层模块实现高层设计的抽象接口。



作业二:

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

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





用户头像

willson

关注

还未添加个人签名 2018.03.08 加入

还未添加个人简介

评论

发布
暂无评论
第 2 周 - 命题作业