您当前的位置: 首页 > 

梁云亮

暂无认证

  • 1浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

观察者设计模式 入门示例

梁云亮 发布时间:2021-08-29 19:18:08 ,浏览量:1

本示例一共提供四个接口或类,如下类图所示: 在这里插入图片描述

第一步:定义抽象观察者角色

public interface Observer {
    void update(String msg);
}

第二步:定义抽象被观察者角色

public interface Observable {
    void addObserver(Observer observer);
    void removeObserver(Observer observer);
    void notifyObservers(String msg);
}

第三步:定义具体观察者

public class ConcreteObserver implements Observer {
    @Override
    public void update(String msg) {
        System.out.println(msg);
    }
}

第四步:定义具体被观察者

public class ConcreteObservable implements Observable {
    private List observers = new ArrayList();
    @Override
    public void addObserver(Observer observer) {
        observers.add(observer);
    }
    @Override
    public void removeObserver(Observer observer) {
        observers.remove(observer);
    }
    @Override
    public void notifyObservers(String msg) {
        for(Observer observer : observers)
            observer.update(msg);
    }
}

第五步:定义测试方法,具体代码如下:

public static void main(String[] args) {
    System.out.println("run java");
    Observable observable = new ConcreteObservable();
    Observer observer1 = new ConcreteObserver();
    Observer observer2 = new ConcreteObserver();
    Observer observer3 = new ConcreteObserver();
    observable.addObserver(observer1);
    observable.addObserver(observer2);
    observable.addObserver(observer3);
    observable.notifyObservers("HelloWorld");
}

运行程序,结果如下图所示: 在这里插入图片描述

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0425s