作业
1.请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则(Dependency Inversion Principle):
①.高层模块不能依赖于底层模块,他们都应该依赖于抽象。
②.抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
核心是:依赖于抽象,面向接口编程。
好莱坞原则:don't call us,we'll call you。意思是不要给我打电话,我会给你打电话。好莱坞原则很像依赖倒置原则,依赖接口,而不是具体实例。
2.请描述一个你熟悉的框架,是如何实现依赖倒置原则的?
larval 框架的核心是 IOC,IOC 是 DIP 的具体实现。IOC 为相互依赖的组件提供抽象,讲抽象对象的获取交给第三方来控制,依赖对象不再被依赖模板的类中直接通过 new 获取,而是通过构造函数注入或属性注入。
3.cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。
评论