• 关于观察者模式的 个人理解


    1. 观察者模式 实际上是一个被观察者 管理着所有的观察者, 一旦观察者有变化或者有动作, 要通知所有的观察者.

    这样就要去观察者要抽象为一个接口或者抽象类了. 所有子类都要实现相同的方法. 被观察者变化时候, 遍历所有的观察者,执行观察者的方法

    java 自有的观察者模式 :   观察者都要继承或者实现Observer接口 实现update方法.

                                            同时被观察者继承Obserrvable类 ,他已经帮忙实现了 add, delete notify 等方法了, 而且里面还做了多线程控制. 集合用的Vector

                  自己的被观察者类只需要实现 需要通知所有观察者的方法即可.  

    因为实际工作的是 观察者的update方法,是继承来的,参数也是固定的. 这样就没法传参数了

    2.事件驱动模型, 感觉是我们工作中最常见的,

    也就是 listener  和 event那一套

    应用上 应该是说

    定义一个事件 event 继承 EventObject 这个事件可以定义这个事件自己特有的属性, 事件需要加消息等?

    定义一个接口 抽象listener 继承  EventListener  ,里面方法自己定义.;参数是具体事件对象

    同时定义一个或者多个 listener实现类

    因为是监听嘛, 肯定是要绑定到一个对象上.    这个对象应该就是相对于上面模式的被观察者, 事件发起者

    定义对象, 对象里面包含一个或者多个Listener; 同时提供 set  和get方法  还有add方法.

    接下来就是定义事件发起的方法了.   方法里面直接直接调用抽象的相对应的listener的方法,参数是相应的事件的new 对象. 可以将参数 赋予事件对象的构造器去初始化.

    整个事件驱动就定义完成了. 

    接下来就是 客户端调用了.  调用的时候, 先初始化对象,  同时 为对象绑定监听,listener. 就是就提listener的实现类. 这样就好了 

    初始化时候 可以直接用匿名内部类就好了 

    button.setOnclick(new ClickListener() {//我们给按钮注册点击监听器
                //按钮被点,我们就验证后提交
                public void click(ClickEvent clickEvent) {
                    System.out.println("--------单击事件代码---------");
                    System.out.println("if('表单合法'){");
                    System.out.println("	表单提交");
                    System.out.println("}else{");
                    System.out.println("	return false");
                    System.out.println("}");
                }
            });
    

    接下来就是调用了相应方法就会触发监听了.

  • 相关阅读:
    Unicode与汉字
    URL编码
    安装apk到虚拟的device
    nginx的conf文件的详细配置
    Linux下MySQL安装及命令使用
    转——iptables详细配置
    Linux下vim文件未正常退出,修复文件
    locate命令的安装
    安装Jenkins后 启动时失败的问题解决
    ——转 token 介绍
  • 原文地址:https://www.cnblogs.com/haoerlv/p/7527797.html
Copyright © 2020-2023  润新知