美文网首页爱编程,爱生活
Java设计模式<观察者模式>

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

作者: 熬夜的猫头鹰 | 来源:发表于2018-06-16 15:21 被阅读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);
     }
}

相关文章

  • 观察者设计模式

    每周学点Java设计模式__观察者设计模式 本次继续更新java23中设计模式之一——观察者模式。 观察者模式(有...

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

    Java设计模式<观察者模式> 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的...

  • Android中涉及的模式

    我的Java设计模式-建造者模式 我的Java设计模式-观察者模式 重学设计模式之单例模式

  • java建造者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java单例模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java外观模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java适配器模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java观察者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java代理模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java策略模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

网友评论

    本文标题:Java设计模式<观察者模式>

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