我正在制作聊天应用程序。我的更新问题在于: 我有Core类,它存储Component的实例。
当收到新消息时,Core将调用Component的方法,它将更新屏幕。
当必须发送新消息(在“组件”窗格中键入)时,组件将如何通知Core?
对我来说(我可能错了)组件将有一个Core实例以便向其发送更新(Observer模式也会发生同样的事情)。 这可能是一个简单的解决方案,但我现在无法解决..任何建议都是受欢迎的。它就像我需要的双向观察者模式。
答案 0 :(得分:2)
基本上,如果你有一个数据源和一个接收器,并且你想确保它们之间的松散耦合,那么观察者模式总是很好用。
如果您的Core类直接存储组件的实例,则它们之间不需要额外的观察者模式,因为Core类可以直接调用组件上的方法,对吧?
因此,您需要在Core和Component之间进行任何连接/间接关联以发送消息,并且您应该使用Observer。在创建实例时,您可以将自己作为Observer传递给Component。
但实际上,我认为它是您架构中的一个主要设计问题,您应该将MVC用于此类应用程序:
在这种情况下,您必须在Controller中分离Core(处理UI交互,即发送/接收消息)和Model(存储消息和元数据,可能是应用程序逻辑)。您的组件将是View类。