第二周作业
一、请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒转原则讲的是:要依赖于“抽象”,而不依赖于“具体”。传统的过程性系统的设计方法倾向于使高层次的模块依赖于低层次的模块,“抽象层”依赖“具体层”。“依赖倒转”原则就是把这种错误的依赖关系倒转过来。
抽象层包含的是应用系统的业务逻辑和宏观、整体的战略决定,是必然性的体现。而具体层则含有一些次要的与实现的算法和逻辑,以及战术性的决定,带有相当大的偶然性选择。具体层代码经常有变动,不能避免错误的出现。抽象层依赖于具体层,使得具体层的细节算法变化影响到抽象层的业务逻辑,导致微观决定宏观,战术决定战略,偶然决定必然。所以这种依赖关系显然是错误的,需要倒转过来。
“好莱坞”原则(Don't call us, we'll call you)
如果把好莱坞电影看成一个系统,剧本就是这个系统的业务逻辑,导演、编剧制定宏观的战略,是抽象层。而演员是具体的实现,演员的表演是实现的细节,是具体层。剧本不可能依赖演员的表演风格进行修改,也不可能让演员来影响导演、编剧的工作。所以“好莱坞”原则是依赖倒转原则的体现。
二、请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
评论