第二次作业
倒置依赖原则
1、请描述什么是倒置依赖原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
倒置依赖原则的思想:
ü 高层模块不依赖低层模块,而是高层和低层都依赖于抽象;
ü 抽象不能依赖实现,而是实现依赖抽象;
判断是否依赖倒置的关键在于:所谓依赖的抽象,这个抽象依赖于谁,抽象是属于谁的,即:定义的接口是为低层(service)实现定义的,还是为上层(controller)定义的。
上层(controller) 定义了自己需要的接口,上层自己调用。然后该接口怎么实现,上层(controller)并不关心,而是交给由低层(service)去实现。
上层(controller)定义接口,低层(service)实现。
好莱坞规则:DON‘T CALL ME ,I‘LL call YOU.
应用程序不要调用框架,而是框架来调用应用程序。
框架是上层,应用程序是低层。
描述一个熟悉的框架,是如何实现依赖倒置原则的
描述一个熟悉的框架,是如何实现依赖倒置原则的。
Junit框架采用了多种设计模式来实现了依赖倒置原则,具体有如下几种:
1、模版方法模式(Template Method)
模板方法模式的组成:包括父类角色和子类角色
父类角色:定义了 提供模板,包括:@Before、@Test、@After。
子类角色:为模板提供实现(具体怎么做)
2、适配器(Adapter)模式
JUnit在TestCase类中应用了适配器模式,在runBare方法中,通过runTest方法将我们自己编写的testxxx方法进行了适配,使得JUnit可以执行我们自己编写的Test Case
3.观察者模式
JUnit中Notifier和Listener,当测试开始、结束、出现错误时,Notifier将通知它管理的Listener执行相应的操作,以便于能够处理在通知过程中出现的异常。
Notifer使用了一个内部类SafeNotifier,所有的对应事件(测试开始等)覆写SafeNotifier里的notifyListener函数,在其中写调用Listener的具体哪一个函数
接口隔离优化Cache类
评论