`

Observer 观察者 行为模式

阅读更多

Observer 观察者 行为模式,定义对象的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于该对象的对象都会得到通知并被自动更新。

 

Observe模式也很好理解,恩,像flash中的事件侦听,像Rss,向报纸的订阅。

 



 我拿PureMVC来举例吧,PureMVC是跨语言的,现在已经支持很多种语言了。PureMVC中的事件的传递,就没有用到flash本身的事件,而是采用了Observe模式来实现的。

 

IObserver.as

package org.puremvc.interfaces {
	public interface IObserver {
		function setNotifyMethod( notifyMethod:Function ):void;
		function setNotifyContext( notifyContext:Object ):void;
		function notifyObserver( notification:INotification ):void;
		function compareNotifyContext( object:Object ):Boolean;
	}
}
 

 

Observer.as

package org.puremvc.patterns.observer {
	import org.puremvc.interfaces.*;

	public class Observer implements IObserver {
		private var notify:Function;
		private var context:Object;

		public function Observer( notifyMethod:Function, notifyContext:Object ) {
			setNotifyMethod( notifyMethod );
			setNotifyContext( notifyContext );
		}

		public function setNotifyMethod( notifyMethod:Function ):void {
			notify = notifyMethod;
		}

		public function setNotifyContext( notifyContext:Object ):void {
			context = notifyContext;
		}

		private function getNotifyMethod():Function {
			return notify;
		}

		private function getNotifyContext():Object {
			return context;
		}

		public function notifyObserver( notification:INotification ):void {
			this.getNotifyMethod().apply(this.getNotifyContext(),[notification]);
		}
	
		 public function compareNotifyContext( object:Object ):Boolean {
		 	return object === this.context;
		 }		
	}
}

 

   PurMVC的订阅者可以是 Command Mediator,发布者可以是 Command Mediator Proxy

 

 

  • 大小: 133.4 KB
分享到:
评论

相关推荐

    C#面向对象设计模式纵横谈(19):(行为型模式) Observer 观察者模式 (Level 300)

    C#面向对象设计模式纵横谈(19):(行为型模式) Observer 观察者模式 (Level 300)

    (行为型模式) Observer 观察者模式

    C#面向对象设计模式 (行为型模式) Observer 观察者模式 视频讲座下载

    观察者模式(Observer)原理图

    观察者模式(Observer Pattern)是一种对象行为型设计模式,它定义了对象之间的一对多依赖关系。 当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式通常用于实现分布式事件处理系统...

    设计模式 观察者 发布/订阅 Observer

    Observer (观察者模式) 又叫做发布/订阅(Publish/Subscribe)模式。 当一个对象的改变同时会影响其他对象的行为的时候,可以使用此设计模式。 l 主题对象 :一个需要被关注的主题对象,这个主题对象改变会影响...

    Java 观察者模式的浅析

    Java 观察者模式的浅析 ... 观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-收听者(Source/Listener)模式或从属者(Dependents)模式。

    [行为模式]head first 设计模式之观察者模式(observer)

    NULL 博文链接:https://jacky-dai.iteye.com/blog/1132063

    JAVA设计模式之行为模式

    这是JAVA设计模式中属于行为模式的部分,包括Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Strategy(策略模式)、State 、Observer(观察者模式)、Visitor...

    C#设计模式(17)——观察者模式(Observer Pattern).pdf

    从生活中的例子可以看出,只要对订阅号... 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己的行为。

    观察者模式

    当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。

    观察者模式源码

    日常开发中常用的行为型设计模式之观察者模式设计源码demo

    c++设计模式-行为型模式-观察者模式

    观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式...

    JavaScript设计模式之观察者模式与发布订阅模式详解

    本文实例讲述了JavaScript设计模式之观察者模式与发布订阅模式。...观察者模式属于行为型模式。在观察模式中共存在两个角色观察者(Observer)与被观察者(Subject),然而观察者模式在软件设计中是一个

    设计模式_观察者模式.zip

    当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。 观察者模式demo java

    design-pattern-observer:GOF观察者行为设计模式示例

    观察者模式 行为模式 在对象之间定义一对多的依赖关系,以便当一个对象更改状态时,将自动通知和更新其所有依赖关系。 在此示例中,我们要监视节点上的子创建/删除事件(可用于监视文件夹) 源代码源于以下UML图:

    JavaScript观察者模式(经典)

    Observer模式也叫观察者模式,是由GoF提出的23种软件设计模式的一种。Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。 Observer模式的概念 ...

Global site tag (gtag.js) - Google Analytics