设计模式 一一一 策略模式

jdk中的观察者模式:
    Observer    观察者
        说明:观察(监听)着感兴趣的对象,通过将自身注册到感兴趣的对象中,并且由感兴趣的对象发通知来实现观察(监听)的效果。收到通知后,根据通知的内容做相应的处理。
    Observable     被观察者
        说明:维护者对自身感兴趣的观察者,并且可以将自身的情况通知给观察者。
    
    /**
     * 被观察者Observable
     */    
    public class Observable {

        /**
         * 维护着注册到自身的观察者列表
         */    
        private Vector<Observer> obs; // 观察者注册表

        /**
         * 当自身(即被观察的对象)发送变化时,依次通知注册表中的观察者
         */    
        public void notifyObservers() {
            // 说明:下面是简化后的代码,可以使逻辑看起来更清晰一些。
            Object[] arrLocal = obs.toArray();
            for (int i = arrLocal.length-1; i>=0; i--)
                ((Observer)arrLocal[i]).update(this, arg);
        }
    }

    /**
     * 观察者Observer
     */    
    public interface Observer {
        /**
         * This method is called whenever the observed object is changed. 
         * An application calls an Observable object"s notifyObservers method to have all the object"s observers notified of the change.
         *
         * @param   o     the observable object.
         * @param   arg   an argument passed to the <code>notifyObservers</code> method.
         */
        void update(Observable o, Object arg);
    }
            
        
        
spring中的观察者模式:
    spring中的事件机制就是基于观察者模式进行设计的。