架构师训练营 第二周【作业】

发布于: 2020 年 06 月 17 日

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

依赖倒置:

  • 高层模块不应该依赖低层模块,二者都应该依赖其抽象

  • 抽象不应该依赖细节,细节应该依赖抽象

好莱坞原则:

  • 别调用我,我来调用你。

依赖倒置需要抽象,而好莱坞原则,也是需要抽象层发挥多态,才能实现被动的调用,所以从实现方式上来看,两者就像是是一回事。

如此设计,不但能起到解耦的作用,使得代码更加灵活易扩展,而且,大大增强了对于代码的控制力。

作业二:请描述一个你熟悉的框架,是如何实现依赖倒置原则的。

拿很早的SpringMVC框架举例,里面使用依赖倒置原则的设计很多,比如拦截器功能Interceptor的实现。框架定义了如下接口HandlerInterceptor:

我们需要使用拦截器,只需要实现以上接口,并实现3个方法,配置好拦截位置并入Spring管理即可。当框架运行到需要拦截的位置时,框架会自动调用该接口,从而我们实现的拦截器也会被调用,而达到拦截的目的。可见代码十分容易扩展。

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

使用接口隔离的方式,一个实现类分别实现两个接口,如下图:

如此设计,就可以在不同的应用场景下,声明不同的接口使用,可以避免暴露所有接口而导致的安全问题。

用户头像

小K

关注

还未添加个人签名 2019.11.08 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 第二周【作业】