架构师训练营第二章作业
1⃣️ 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则:
高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象
抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
遵循依赖倒置原则的编码守则:
1.应用代码中多使用抽象接口,尽量避免使用那些多变的具体实现类。
2.不要继承具体类,如果一个类在设计之初不是抽象类,那么尽量不要去继承它。对具体类的继承是一种强依赖关系,维护的时候难以改变。
3.不要重写(override)包含具体实现的函数。
好莱坞原则:不要给我们打电话,我们会给你打电话
好莱坞原则是用在系统的高层组件与底层组件之间。高层组件不应该直接调用低层组件,而是从容器获取。
而低层组件,只需要关注实现定义好的接口,不需要关注谁来调用自己,什么时候被调用。
2⃣️请描述一个你熟悉的框架,是如何实现依赖倒置原则的
springMVC, controller层使用service层组件时,只通过注解标记使用到的service,不会直接使用service的实现类,程序运行时通过spring框架去注入实现类。
所以如果业务细节有变化,只需要在service的实现类里更改业务代码,无需改变controller
3⃣️请用接口隔离原则优化 Cache 类的设计,画出优化后的类图
评论