您的位置:首页 > 编程语言 > Java开发

Java监听器与观察者模式

2014-04-02 11:14 134 查看
观察者模式分为观察者(被通知并执行)和被观察者(添加观察者列表,事件触发通知)两部分,在java、.net等事件处理中使用广泛

观察者抽象类

public abstract class Observer {

public abstract void Update();
}


观察者A

public class ObserverA extends Observer {

@Override
public void Update() {
System.out.println("This is ObserverA Update");
}
}


观察者B

public class ObserverB extends Observer {

@Override
public void Update() {
System.out.println("This is ObserverB Update");
}
}

 

观察者C.......

 

被观察者

 

public class Observed {
List<Observer> list = new ArrayList<Observer>();
public void AddObserver(Observer o) {
list.add(o);
}

public void RemoveObserver(Observer o) {
list.remove(o);
}

public void Notify() {
for (Observer o : list) {
o.Update();
}
}
}


 

执行

 

public static void main(String[] args) {
Observed observed = new Observed();
observed.AddObserver(new ObserverA());
observed.AddObserver(new ObserverB());
observed.Notify();
}


 

观察者抽象类替换成观察者接口就是监听器了

public interface Observer {
public void Update();
}

 

public static void main(String[] args) {
Observed observed = new Observed();
observed.AddObserver(new Observer() {
@Override
public void Update() {
System.out.println("This is ObserverA Update");
}
});
observed.AddObserver(new Observer() {
@Override
public void Update() {
System.out.println("This is ObserverB Update");
}
});
observed.Notify();
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: