我正在制作一个聊天应用程序。我的更新问题在于: 我有存储 Component 实例的 Core 类。
当收到新消息时,Core 将调用 Component 的方法并更新屏幕。
当必须发送新消息(在组件 Pane 中输入)时,组件将如何通知核心?
组件将拥有一个 Core 实例以便向其发送更新(观察者模式也会发生同样的事情),这对我来说没有意义(我可能是错的)。 这可能是一个简单的解决方案,但我现在无法弄清楚。欢迎任何建议。它类似于我需要的双向观察者模式。
最佳答案
基本上,如果您有数据源和接收器并且希望确保它们之间的松散耦合,那么观察者模式总是很好用。
如果您的 Core 类直接存储组件的实例,那么它们之间不需要额外的观察者模式,因为 Core 类可以直接调用组件上的方法,对吗?
因此,您需要 Core 和组件之间的任何连接/间接关联来发送消息,并且您应该使用 Observer。当您创建组件的实例时,您可以将自己作为观察者传递给组件。
但实际上,我认为这是您架构中的一个主要设计问题,您应该为此类应用程序使用 MVC:
在这种情况下,您必须将核心分为 Controller (处理 UI 交互,即发送/接收消息)和模型(存储消息和元数据,可能是应用程序逻辑)。您的组件将是 View 类。
关于java - 带有聊天应用程序的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188983/