【JUnit源码解读】--观察者模式

【JUnit源码解读】--观察者模式

一、观察者模式定义
         观察者模式(Observer): 在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新

二、在JUnit中的体现




TestResult中用Vector保存各个监听器(文本界面、图形界面和Eclipse插件)
protected Vector fListeners;  //监听器集合

在测试运行阶段,如果出现Error 或者 Failure,TestResult 则会通知各个监听器
public   synchronized   void  addFailure(Test test, AssertionFailedError t)  {
        fFailures.addElement(
new TestFailure(test, t));
        
//观察者模式在这里体现出来了,当fFailures有变化时,马上通知其它Listeners
        for (Enumeration e= cloneListeners().elements(); e.hasMoreElements(); ) {
            ((TestListener)e.nextElement()).addFailure(test, t);
        }

    }


你可能感兴趣的:(【JUnit源码解读】--观察者模式)