1 观察者模式
2 实现代码
class Subject{
private List<Observer> observerList = new ArrayList<>();
private int state;
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
for(Observer observer : observerList){
observer.sout();
}
}
public void addObserver(Observer observer){
observerList.add(observer);
}
}
abstract class Observer{
public Subject subject;
public abstract void sout();
}
class BinaryObserver extends Observer{
public BinaryObserver(Subject subject) {
this.subject = subject;
this.subject.addObserver(this);
}
@Override
public void sout() {
System.out.println(Integer.toBinaryString(subject.getState()));
}
}
class DecimalObserver extends Observer{
public DecimalObserver(Subject subject) {
this.subject = subject;
this.subject.addObserver(this);
}
@Override
public void sout() {
System.out.println(Integer.toOctalString(subject.getState()));
}
}
public class Test{
public static void main(String[] args){
Subject subject = new Subject();
new BinaryObserver(subject);
new DecimalObserver(subject);
subject.setState(10);
}
}