观察者模式:当对象存在一对多关系时,则使用观察者模式。比如,当一个对象被修改是,则会自动通知它的依赖对象。
实现:
观察者模式使用三个类Subject、Obsever和Client。Subject对象带有绑定观察者到Client对象和从Client对象解绑观察者的方法。
1.创建Subject
class Subject{
List<Observer> observers=new ArrayList<Observer>();
private int state;
public int getState(){
return state;
}
public void setState(int state){
this.state=state;
notifyAllObservers();
}
void attach(Observer ovserver){
observesr.add(observers);
}
public void notifyAllObServers(){
for(Obsersver observer:observers){
observers.update();
}
}
2.创建Observer
public abstract class Observer{
Subject subject;
abstract void update();
}
3.创建实体观察则
class BinaryObserver extends Observer{
BinaryObserver(Subject subject){
this.subject=subject;
this.subject.attach(this);
}
void update(){
sysout("Binary String:");
}
}