首先了解一下几个容易混淆的概念:
消息(Notification)有两种:一种是当接收到消息后直接执行相应的函数,通过绑定消息名称和消息处理类实现;
如果你对同一个消息名称绑定多个处理类,以最后绑定的为准。
第二中消息不需要绑定处理函数,而是指明当消息发生时通知观察者,我只知道我可能对某些 消息感兴趣,至于我怎么 处理你别管(比较霸道)。这两种消息都要绑定观察者。因为可能我感兴趣的消息包括你已经绑定执行函数的消息。 中介(Mediator):中介包括三部分组成,view和感兴趣的消息列表,注册中介的目的是为了根据名称拿到view。
观察者(Observer):观察者包括两部分,对应的函数和对消息感兴趣的对象,注册观察者的目的是为了消息发生时通知所 有的观察者,观察者可以很据需要进行操作。
/*
PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
Your reuse is governed by the Creative Commons Attribution 3.0 United States License
*/
package org.puremvc.as3.interfaces
{
public interface IView
{
/**
* 作用:注册观察者
* @param notificationName 消息名称
* @param observer 要注册的观察者,(observer包含两部分组成:消息处理类函数和对这个消息感兴趣的对象)
*/
function registerObserver( notificationName:String, observer:IObserver ) : void;
/**
* 作用:移除观察者
* <P>
* @param notificationName 消息名称
* @param notifyContext 将要移除的包含的“对消息感兴趣的对象”的观察者
*/
function removeObserver( notificationName:String, notifyContext:Object ):void;
/**
* 作用:以特定的消息通知所有的观察者
*
*
* @param notification 要通知的消息
*/
function notifyObservers( note:INotification ) : void;
/**
*
* 作用 :注册调停者(中介)中介包括两部分:view和中介名称,之所以注册中介是为了以后很据名称拿到view
*
* @param mediator 要注册的中介
*/
function registerMediator( mediator:IMediator ) : void;
/**
* 作用:根据中介名称拿到中介
*
* @param mediatorName 中介的名称
* @return 返回拿到的中介
*/
function retrieveMediator( mediatorName:String ) : IMediator;
/**
* 作用:移除中介
*
* @param mediatorName 要移除的中介的名称
* @return 返回移除的中介
*/
function removeMediator( mediatorName:String ) : IMediator;
/**
* 作用:根据中介名称判断在 controller中是否存在该中介
*
* @param mediatorName 中介名称
* @return
*/
function hasMediator( mediatorName:String ) : Boolean;
}
}
本文详细解释了消息通知机制中的两种类型:直接执行相应函数的消息和仅通知观察者的消息。同时介绍了中介(Mediator)的作用及其组成部分,并阐述了观察者(Observer)的功能及其实现方式。
1323

被折叠的 条评论
为什么被折叠?



