1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
答:依赖倒置原则,英文缩写DIP,全称Dependence Inversion Principle。原始定义:High level modules should not depend upon low level modules.Both should depend upon abstractions. Abstractions should not dependupon details. Details should depend upon abstractions。官方翻译:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
对依赖倒置原则的理解:1.在代码中应该更多的使用抽象接口,使得高层模块依赖于这些抽象接口,而不是直接依赖于低层的业务实现。2.高层模块需要定义它所依赖的接口,而不去关心实现接口的类里面的逻辑。低层模块需要按照接口协议去实现高层模块所定义的接口;这样可以使得架构更稳定,更灵活,更好应对需求变化。
2.请用接口隔离原则优化Cache类的设计,画出优化后的类图。
重构后的cache类
1.cache类拆分为两个接口,IClientCache接口中定义了put,get,delete等基本操作,IRemoteCache定义了rebuild操作。
2.ClientCache实现了IClientCache接口,RemoteCache实现了IRemoteCache接口,ClientCache聚合了RemoteCache类。
3.采用观察者模式,当配置文件发生变化时,ClientCache重写了观察者中的update方法,并在方法中调用RemoteCache#rebuild方法。
网友评论