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

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("\t表单提交");
                System.out.println("}else{");
                System.out.println("\treturn false");
                System.out.println("}");
            }
        });

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

时间: 2024-10-25 04:22:41

关于观察者模式的 个人理解的相关文章

Android中观察者模式的升入理解

以前对Java中的观察者模式只知道一点皮毛,在接触Android的过程中,逐渐认识到观察者模式是如此的重要,android中许多地方都用到了观察者模式例如ContentResolver操作,来总结一下android中观察者模式的使用技巧 我所理解的观察者模式是这样子的:: 以一个例子来说明: 在service中有一个int类型的数据i,我在service中启动一个定时器去不断更新这个值,当我在activity中启动这个服务一次之后,每当i变化的时候我的activity要自动的同步更新这个值来显示

观察者模式-Observer

观察者模式很好理解,简单来说就是:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系. 1. 自己手工创建Observer模式 首先,创建观察者接口: 1 public interface Observer { 2 void update(); 3 } Publisher接口: 1 public interface Publisher { 2 void add(Observer observer); 3 4 void delete(Observer ob

观察者模式的初始学习--自己实现

观察者模式:首先要理解观察者模式的定义,对象间一对多的关系,当其中的一个Object变化[subject]时,其他的依赖这个对象的对象[Observer],都会受到相应的通知,并且自动更新自己状态. 其中目标对象,是源头:subject,它应该包含有 add()  \  remove()  \  notify()  基本的单个方法,分别用于 注册观察者, 删除观察者,以及通知观察者. 而观察者对象: Observer 则应该有 update()方法,在收到依赖对象的变化通知时候,就自动执行upd

java设计模式-观察者模式学习

最近学习了设计模式中的观察者模式,在这里记录下学习成果. 观察者模式,个人理解:就是一个一对多模型,一个主体做了事情,其余多个主体都可以观察到.只不过这个主体可以决定谁去观察他,以及做什么事情可以给别人观察. 引用大师的话就是 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式.模型-视图(Model/View)模式.源-监听器(Source/Listener)模式或从属者(Dependents)模式. 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时

JavaScript设计模式之观察者模式(学习笔记)

设计模式(Design Pattern)对于软件开发来说其重要性不言而喻,代码可复用.可维护.可扩展一直都是软件工程中的追求!对于我一个学javascript的人来说,理解设计模式似乎有些困难,对仅切图.做少量交互效果的FE甚至可能不会用到,但是当你开始使用Angular/Backbone等框架的时候,就无法避免设计模式.MVC/MVVM这些东西了(反正我是伤脑筋). 我学设计模式是刚开始接触编程大概三个月的时候,看一本书<大话设计模式>,里面用C#语言来写,我很无语,因为强类型的编程语言对于

《深入理解JavaScript系列》系列技术文章整理收藏

<深入理解JavaScript系列>系列技术文章整理收藏 深入理解JavaScript系列来自汤姆大叔的整理贴,原文地址http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 此处收藏供JavaScript学习参考 1深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 2深入理解JavaScript系列(2):揭秘命名函数表达式 3深入理解JavaScript系列(3):全面解析Module模式

Java二十三设计模式之------观察者模式

一.观察者模式(Observer) 观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你.其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系.先来看看关系图: 我解释下这些类的作用:MySubject类就是我们的主对象,Observer1和Observer2是依赖于MySubject的对象,当MySubject变化时,Ob

Java开发中的23种设计模式详解(转)

设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周

0. Java开发中的23种设计模式详解(转)

设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周