架构训练营第二周作业
作业一:
1. 作业内容
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
解答
依赖倒置原则说的是,为了设计一个重用性高,灵活性好的系统,应该设计一个高层模块不依赖低层模块(实现)、同时低层模块也不依赖于高层模块,二者同时依赖抽象的系统。抽象一般体现为接口,而此接口属于高层模块,即由高层模块定义接口。低层模块需要实现此接口。
好莱坞原则原话是“don't call us, we'll call you"。意思是在好莱坞,把简历递交给演艺公司后就只有回家等待。 由演艺公司对整个娱乐项的完全控制,演员只能被动式的接受公司的差使,在需要的环节中,完成自己的演出。
这句话用在依赖倒置这里很形象。高层模块因为是”高层“,可以类比为演艺公司;相应的低层模块就是演员了。根据依赖倒置原则,一个低层接口只能根据高层接口定义好的接口进行实现。正如好莱坞原则规定的,演员只能被动的听从公司的差使完成演出一样。所以有时候依赖倒置原则又被称为好莱坞原则。
2. 作业内容
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
解答
原始类图:
put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。因此将方法拆解为两个组,分别放到到两个接口中,实现接口隔离。
拆解后类图:
作业二:
根据当周学习情况,完成一篇学习总结
解答
本周内容主要讲了 SOLID 原则,是平时设计的时候要遵循的基本原则
s -> single responsibility principle 单一职责原则
o -> open close principle 开闭原则
l -> liskov substitution principle 里式替换原则
i -> interface segregation principle 接口隔离原则
d -> dependency inversion principle 依赖倒置原则
知识总结如下图:
个人心得:
早就听说过SOLID原则。但是读书都是云里雾里。李智慧老师对于五个原则的举例对我的理解非常有帮助!助教老师也帮助了我,让我画思维导图。本周作业比起上周,感觉更加靠谱。这也是自己有了进步的体现。往下的学习,我十分期待能有更大的进步!
版权声明: 本文为 InfoQ 作者【一期一会】的原创文章。
原文链接:【http://xie.infoq.cn/article/ee3511ca1198b74a1c0a261df】。文章转载请联系作者。
评论 (1 条评论)