设计模式

此人设计模式写的浅显易懂,值得信赖;通俗的说只要你不是智障都能看明白!
http://www.cnblogs.com/lwbqqyumidi/category/543053.html

1.设计模式总结篇系列:观察者模式(Observer)
观察者模式中通常有两个基本的概念主题:观察者和被观察者。当被观察者状态发生改变时,需要通知相应的观察者,当然,每个被观察者所对应的观察者可能不知一个,他们之间是1:n的关系。用专业一点的术语对观察者模式的描述为:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化。

观察者模式的一般实现方式如下:
1.定义观察者所具有的共同的接口:

interface Observer {
    public void update();
}

2.定义两个观察者:

class ObserverA implements Observer {
    @Override
    public void update() {
        System.out.println("ObserverA has received!");
    }
}

class ObserverB implements Observer {
    @Override
    public void update() {
        System.out.println("ObserverB has received!");
    }
}

3.定义被观察者所具有的抽象父类:

abstract class Observable {

ArrayList observers = new ArrayList();

public void add(Observer observer) {
    observers.add(observer);
}

public void del(Observer observer) {
    observers.remove(observer);
}

public void notifyObservers() {
    for(Observer observer:observers)
    {    
         observer.update();
     }
}

public void operation() {

}
}

4.定义具体的被观察者:

class ConcretObservable extends Observable{
    @Override  
    public void operation() {  
        System.out.println("update self!");  
        notifyObservers();  
    }
}

5.测试:

public class ObserverTest {  
    public static void main(String[] args) {  
        Observable sub = new ConcretObservable();  
        sub.add(new ObserverA());  
        sub.add(new ObserverB());  
        sub.operation();  
    }  
}

你可能感兴趣的:(设计模式)