爱编程,爱生活

Java设计模式<观察者模式>

2018-06-16  本文已影响15人  熬夜的猫头鹰

Java设计模式<观察者模式>

意图

场景

优点

开发场景

应用一旦启动,系统要做一系列的后续操作

Demo

定义观察者

public interface Observer {

    public void update();
}


Tomcat


public class Tomcat {

    private boolean isStarted = false;

    private List<Observer> observers = new ArrayList<Observer>();

    public void attach(Observer observer){
        observers.add(observer);
    }

    public void notifyAllObservers(){
        for (Observer observer : observers) {
            observer.update();
        }
        observers.clear();
    }

    public boolean isStarted() {
        return isStarted;
    }

    public void setStarted(boolean started) {
        isStarted = started;
        if(isStarted)
            notifyAllObservers();
    }
}

测试类DemoMain

public class DemoMain {
    public static void main(String[] args) {
        Tomcat tomcat = new Tomcat();
        tomcat.attach(new Observer() {
            public void update() {
                System.err.println("post a request to baidu.com");
            }
        });

        tomcat.attach(new Observer() {
            public void update() {
                System.err.println("post a request to taobao.com");
            }
        });
        tomcat.setStarted(true);
     }
}

上一篇 下一篇

猜你喜欢

热点阅读