美文网首页设计模式
Java内置观察者模式

Java内置观察者模式

作者: jsjack_wang | 来源:发表于2018-01-25 13:38 被阅读0次

    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内置观察者模式

        本文链接:https://www.haomeiwen.com/subject/vrrvaxtx.html