Java内置观察者模式

1.简介(概念上一节已经讲过)

java.util.Observable 可观察者(被观察对象实现此类即可)
java.util.Observer 观察者(观察者实现此接口即可)

2.小栗子

2.1 被观察者JavaPlatform.java
public class JavaPlatform extends Observable {
    public void mineNotifyObservers() {
        setChanged();
        super.notifyObservers();
    }
}
2.2 观察者
public class JavaWeixin implements Observer {
    private String name;

    public JavaWeixin(String name) {
        this.name = name;
    }

    @Override
    public void update(Observable o, Object arg) {
        System.out.println("name:" + this.name);
    }
}

3.测试

public class JavaObserverPatternDemo {
    public static void main(String[] args) {
        JavaPlatform javaPlatform = new JavaPlatform();
        JavaWeixin a = new JavaWeixin("a");
        JavaWeixin b = new JavaWeixin("b");
        javaPlatform.addObserver(a);
        javaPlatform.addObserver(b);
        javaPlatform.mineNotifyObservers();
        javaPlatform.deleteObserver(a);
        javaPlatform.mineNotifyObservers();
    }
}
result:
    name:b
    name:a
    name:b

4.总结

Java内置观察者模式,因为可观察者是对象,所以可扩展性不强。它内部实现代码很简单,可看源码。

你可能感兴趣的:(Java内置观察者模式)