第 2 周课后练习 -OOD 的五大原则
作业一:
1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
解答:
依赖倒置即:高层不依赖低层,而应该由高层进行抽象,由低层去实现,从而实现解耦。
好莱坞原则:"不要给我们打电话,我们会给你打电话(Don't Call us, We'll Call You)",在好莱坞,把简历递交给演艺公司后就只有回家等待。由[演艺公司]对整个演艺界的完全控制,演员只能被动式的接受公司的差,在需要的环节中,完成自己的演出。
us 对应的是高层模块;You 对应的是底层模块;与“高层模块不依赖低层模块,应该依赖抽象”的思想一致,故称依赖倒置为好莱坞原则。
在系统框架设计中,应该由框架主动调用代码,而不是代码调用框架。即:框架定义接口,定义场景,由业务代码去实现框架定义的接口,就可以达到框架主动调用代码的效果。
2. 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图
解答:
接口隔离原则是指,客户端不应该被强迫实现一些他们不会使用的接口。实现这个原则的方式是:定义多个职责单一的接口,但是由一个实现类去实现他们,对外暴露多个接口。
为 Cache 实现类的 4 个方法,定义两个接口:ICache 接口,包含 put/get/delete 方法 IRemoteCall 接口,包含 reBuild 方法,对外提供 ICache 接口的使用,减少 IRemoteCall 接口给使用带来的隐患,实现接口隔离。类图如下:
评论