1,在pureMvc中,返回单例时,因为是使用的框架中的IFacade 的父类引用,则返回类型与引用不符合.这时需要as一下
public static function getInstance():ApplicationFacade
{
if(!instance){
instance = new ApplicationFacade();
}
return instance as ApplicationFacade;// 这里不能直接返回,需要先转换类型.
}
由于instance是IFacade类型, 框架已经定好的,但是我们需要返回ApplicationFacade类型以方便使用startup方法,这时as一下就可以返回了.
当然也可以在使用时再转换,但是这个更grace一些.
2,定义了Notification名称常量。Façade类是整个系统其他角色相互访问通信的核心,所以在这里定义Notification(通知)名称常量是最合适的。
3,notification 使用command来接收直接解决问题是最好的方案, 使用listNotificationInterests 添加感兴趣的事件,然后handleNotification中switch处理是备用方案.
4,注意:除了顶级的application (即Main) ,其他组件视图都不需要和Facade 交互 . 顶级application构建视图结构,初始化facade,并启动整个pureMVC机制.
5,Facade 和Proxy只能发送Notification,Mediators既可以发送也可以接收Notification,Notification被映射到 Command,同时Command也可以发送Notification。这是一种“发布/订阅”机制,所有的观察者都可以收到相同的通知。
6,视图组件与相应的Mediator 通信应该通过Event(原生事件),然后由Mediator与pureMVC系统的其他部分通过Notification进行. 实现解耦,易于替换.
同上理: Data Object 和相应的Proxy通信也是通过flash的事件机制,也可以保证data object和 view component的重用性.