java - 带有聊天应用程序的设计模式

标签 java design-patterns

我正在制作一个聊天应用程序。我的更新问题在于: 我有存储 Component 实例的 Core 类。

当收到新消息时,Core 将调用 Component 的方法并更新屏幕。

当必须发送新消息(在组件 Pane 中输入)时,组件将如何通知核心?

组件将拥有一个 Core 实例以便向其发送更新(观察者模式也会发生同样的事情),这对我来说没有意义(我可能是错的)。 这可能是一个简单的解决方案,但我现在无法弄清楚。欢迎任何建议。它类似于我需要的双向观察者模式。

最佳答案

基本上,如果您有数据源和接收器并且希望确保它们之间的松散耦合,那么观察者模式总是很好用。

如果您的 Core 类直接存储组件的实例,那么它们之间不需要额外的观察者模式,因为 Core 类可以直接调用组件上的方法,对吗?

因此,您需要 Core 和组件之间的任何连接/间接关联来发送消息,并且您应该使用 Observer。当您创建组件的实例时,您可以将自己作为观察者传递给组件。

但实际上,我认为这是您架构中的一个主要设计问题,您应该为此类应用程序使用 MVC:

MVC

在这种情况下,您必须将核心分为 Controller (处理 UI 交互,即发送/接收消息)和模型(存储消息和元数据,可能是应用程序逻辑)。您的组件将是 View 类。

关于java - 带有聊天应用程序的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188983/

相关文章:

java - 无法立即用Java绘制图形

design-patterns - 在 Julia 模块中自动导出函数的语法

javascript - 是否有一种设计模式的功能类似于观察者与装饰者的混合?

javascript - 当对象需要首先加载 DOM 时,使用最佳的 Javascript 设计模式?

java - 多重继承的替代方案

java - Java 中的内存问题是否会导致 BufferedReader 过早返回 null?

java - 类型错误 : Cannot find function createHTMLDocument in object

design-patterns - 贫血领域模型与领域模型

带有sql语句的Java JDBC exec过程