架构师培训第二周课后作业
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
上层模块不应该依赖底层模块,它们都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
好莱坞原则是“不要给我打电话,我们会给你打电话(don‘t call us, we‘ll call you)”,好莱坞原则强调高层对低层的主动作用,即低层只需要管好自己的工作(具体实现),而高层自有它自己的工作(这就是管理低层的逻辑,或者说从 client 到具体实现的一系列中间逻辑)。在不需要用到某个低层的时候,高层并不会调用到这个具体低层,低层永远不需要向高层作出表示,说它需要被调用(即在所有的处于使用者与现有代码的中间的,用于隔离和解偶二者的那些中间逻辑中,低层逻辑永远不要涉入高层的实现,而只要高层通过某个逻辑去涉入低层的实现,也即低层不要去调用高层,只有高层才会去调用低层,这才是合理的,我们应尽量避免向上调用和相互调用)。这个依赖倒置原则相类似,所以依赖倒置原则又被称为好莱坞原则。
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
评论