zoukankan      html  css  js  c++  java
  • 设计模式笔记-观察者(Observer)

    观察者设计模式应该是比较简单的一个设计模式。

    定义

    定义了对象之间的一对多依赖,这样以来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

    简单理解就是: 当1个对象状态有所改变的时候,依赖于它的其他对象将会有所行为。

    举例:时钟12点响起的时候,公司里的员工都出去吃饭了,老板准备开会了,学生下课了。 

    类图

     

    测试

    public class Test {
    
        public static void main(String[] args) {
            Clock clock = new Clock();
            Employee employee = new Employee();
            Student student = new Student();
            Boss boss = new Boss();
            clock.registerObserver(employee);
            clock.registerObserver(student);
            clock.registerObserver(boss);
            clock.clock12();
        }
    
    }

    output:

    可以看出,只要时钟到了12点。各个观察者就会触发各自对应的行为。

    总结

    其实jdk中已经为我们定义了一套观察者设计模式的api。

    是Observable和Observer。

    需要注意的几点是

    Observable是一个类,而并非接口;

    Observer接口大致一致,不过jdk提供的Observer带有参数;

    Observable类调用notifyObservers的时候需要调用一下setChanged方法,它里面维护一个实例变量changed。

    有兴趣的同学可以自行查看jdk源码。

  • 相关阅读:
    web项目优化
    mysql 优化笔记
    Java 调用 google 翻译
    Git回滚merge操作
    mybatis 批量插入 返回主键id
    idea tomcat debug 失效
    mysql 常用语句
    xstream 解析xml报文
    activeMQ 讲解及实战
    linux svn apache
  • 原文地址:https://www.cnblogs.com/fangjian0423/p/3561325.html
Copyright © 2011-2022 走看看