您的位置:首页 > 其它

观察者模式 Observer Pattern

2018-02-18 22:49 537 查看
观察者模式是指,当一个类状态发生变化时,会通知所有的观察者类,主要用于有数据变化或者是状态变化的场景下,比如listerner监听器,一般采用异步的方式。



观察类接口:public interface Observer {
void update(String name);
}观察者实现:public class ConsoleObserver implements Observer{

@Override
public void update(String name) {
System.out.println("console:新名字是:"+name);
}

}
public class LogObserver implements Observer {

@Override
public void update(String name) {
System.out.println("log:新名字是:"+name);
}

}

被观察者类:public class Subject {

private List<Observer> list = new ArrayList<>();
private String name;

public void addObserver(Observer obj){
list.add(obj);
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
// 通知所有的观察者对象,并且把新名字传入
notifyAllObservers(this.name);
}

private void notifyAllObservers(String name) {
for (Observer obj : list) {
obj.update(name);
}
}

}测试类:public class Test {
public static void main(String[] args) {
Subject sub = new Subject();
sub.addObserver(new ConsoleObserver());
sub.addObserver(new LogObserver());
sub.setName("123");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: