首先了解一下几个容易混淆的概念:
消息(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; } }