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