TypeScript的PureMVC框架之Facade類;

Facade類

facade類是pureMVC框架的單例類,Facade提供了與核心層通信的唯一接口

以下是AppFacade單例類 繼承自puremvc.Facade

static getInstance(facadeID:string = "AppFacade"):AppFacade
{
    if(!puremvc.Facade.instanceMap[facadeID])
    {
        puremvc.Facade.instanceMap
        puremvc.Facade.instanceMap["AppFacade"] = new AppFacade("AppFacade");
    }

    return <AppFacade>puremvc.Facade.instanceMap["AppFacade"];
}

此類調用puremvc.Facade中的接口函數,通用方法如下: AppFacade.getInstance().sendNotification()

Facade類成員:
public model: IModel; ---------------------------------------------------------------------------------------------Model單例
public view: IView;--------------------------------------------------------------------------------------------------View單例
public controller: IController;-------------------------------------------------------------------------------------Controller單例
public multitonKey: string;----------------------------------------------------------------------------------------Facade單例創建後設置祕鑰
constructor (key:string);-------------------------------------------------------------------------------------------構造函數
Facade類的成員函數:
public initializeFacade(): void;-----------------------------------------------------------------------------------初始化Facade單例
public initializeModel(): void;-------------------------------------------------------------------------------------Facade完成後初始化Model
public initializeController(): void;--------------------------------------------------------------------------------Facade完成後初始化Controller
public initializeView(): void;---------------------------------------------------------------------------------------Facade完成後初始化View

public registerCommand(notificationName: string, commandCla***ef: Function): void;---------註冊命令,並設置一個命令的名字
public removeCommand(notificationName: string): void;-------------------------------------------------移除命令
public hasCommand(notificationName: string): boolean;-------------------------------------------------檢測通知名是否註冊命令

public registerProxy(proxy: IProxy): void;---------------------------------------------------------------------通過模型名註冊代理
public retrieveProxy(proxyName: string): IProxy;-----------------------------------------------------------檢索代理
public removeProxy(proxyName: string): IProxy;-----------------------------------------------------------移除代理
public hasProxy(proxyName: string): boolean;--------------------------------------------------------------檢測代理是否註冊

public registerMediator(mediator: IMediator): void;---------------------------------------------------------註冊Mediator
public retrieveMediator(mediatorName: string): IMediator;-----------------------------------------------檢索Mediator
public removeMediator(mediatorName: string): IMediator;-----------------------------------------------移除mediator
public hasMediator(mediatorName: string): boolean;------------------------------------------------------檢測Mediator

public notifyObservers(notification: INotification):void;-----------------------------------------------------此方法主要用於向後兼容性,並允許您使用Facade來發送自定義通知類
public sendNotification(name: string, body?: any, type?: string):void;----------------------------------創建發送通知,實現通信
public initializeNotifier(key: string): void;-----------------------------------------------------------------------Facade單例創建後設置祕鑰

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章