在PureMVC中,Proxies应该自己发送Notifications,还是通过ApplicationFacade发送?

时间:2009-08-24 14:50:57

标签: actionscript flex3 puremvc

PureMVC框架中,代理通过通知与ApplicationFacade(以及任何感兴趣的组件)进行通信。是否应通过自己的实例或ApplicationFacade的Singleton实例发送此通知?坦率地说,这有关系吗?

以下两种方法(在Flex / AS中):

// from the proxy itself
this.sendNotification(ApplicationFacade.NOTIFY_ALL);

// via the ApplicationFacade instance
ApplicationFacade.getInstance().notifyObservers(new Notification(ApplicationFacade.NOTIFY_ALL));

第二种方法看起来更冗长,更不直观。此外,代理具有发送通知的能力,在我看来,这意味着它可能应该。是否有代理应该只通过ApplicationFacade实例发送通知的实例?

1 个答案:

答案 0 :(得分:2)

notifyObservers函数是旧实现的一部分;来自代理的sendNotification调用是可接受的方法。很确定notify函数只是为了向后兼容。实际上(只是戳入代码):实现sendNotification的类的INotifier方法仅调用facade.sendNotification,而facade.notifyObservers又调用{{1}},因此第二种方法与第一个相同 - 正如你所指出的那样更加冗长。所以,是的,首先!