10.观察者模式

观察者模式:定义一种一对多的依赖关系,让多个观察者对象同事监听一个主题对象,当主题对象变化是,会通知所有观察者对象,使他们能更新自己

import java.util.ArrayList;

import java.util.List;

/**

* 观察者模式:

* 关键:

* subject接口: 主题或抽象通知,定义添加方法 删除方法 通知方法

* 具体Subject: 实现subject接口,(通知方法循环添加的observer,

* 并调用具体observer中的更新方法)

* observer接口:观察者,定义更新方法

* 具体observer:具体观察者,实现具体更新方法

* @author zbl

*

*/

public class ObserverCustomer {

public static void main(String[] args) {

MySubject subject = new MyBoss();

MyObserver observer = new ConcreteObserver();

subject.add(observer);

subject.mynotify();

}

}

//主题或抽象通知

interface MySubject{

public void add(MyObserver observer);

public void remove(MyObserver observer);

public void mynotify();

}

//具体主题

class MyBoss implements MySubject{

private List<MyObserver> list = new ArrayList<MyObserver>();

@Override

public void add(MyObserver observer) {

list.add(observer);

}

@Override

public void remove(MyObserver observer) {

list.remove(observer);

}

@Override

public void mynotify() {

for(MyObserver obj : list){

obj.update();

}

}

}

//抽象观察者

interface MyObserver{

public void update();

}

//具体观察者

class ConcreteObserver implements MyObserver{

@Override

public void update() {

System.out.println("xiix");

}

}

猜你喜欢

转载自blog.csdn.net/littlelittleguai/article/details/84398834