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源码。

  • 相关阅读:
    盒子模型
    flex布局
    less基本使用
    vue全局配置(引入全局方法样式、按需加载elementui)
    vue性能优化
    vue实现原理
    webapi读取配置文件内容
    命令行启动dotnet core项目
    Linux常用命令
    sqlserver数据库密码忘记了,如何重置?
  • 原文地址:https://www.cnblogs.com/fangjian0423/p/3561325.html
Copyright © 2011-2022 走看看