java - 将静态 java 对象用于软件组件

标签 java multithreading components static-methods

我有一个关于如何实现某种设计的问题。我正在创建一个聊天客户端应用程序,我的实现有几个 GUI,一个用于登录屏幕,第二个用于注册屏幕,第三个用于聊天 GUI。我希望在登录屏幕启动时启动一个线程,即 ConnectionHandler,基本上它将基于 SynchronizedQue 将所有命令发送到服务器,我想将其包装在 MessageQue 对象中,该对象将是一个静态的一次性对象。这个想法是让这个线程在应用程序的整个生命周期中运行。

基本上,登录屏幕将向 SynchronizedQue 发送一条消息,然后 ConnectionHandler 读取它已更新,将消息接收到套接字并将其发送出去。

对于这种情况,这是正确的面向对象方法吗?我读到静态对象、变量等不是正确的面向对象方法。基本上,问题是关于实现位于内存中的一次性组件以及其他类与之通信的设计理念。

编辑: 在写这篇文章时我突然想到的另一个想法是将静态对象 MessageQue 放入 MessegeQueHandler 类中,因此可以随意创建 MessegeQueHandler 类,但消息队列将存在于后台,这可能会有点更加面向对象。

感谢您的指导。

最佳答案

您所描述的是Singleton Pattern是面向对象设计和其他范例中非常常见的模式。所以是的,在 OO 设计中使用它是可以的。

关于java - 将静态 java 对象用于软件组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36454804/

相关文章:

java - Reduce 任务被 Hadoop 多节点 (10x) 集群中的太多获取失败消息停止

java - 更新客户端 GUI

c# - 我可以跨程序集使用 ManualResetEvent 吗?

C++ 单生产者多消费者程序偶尔崩溃

java - 传递给构造函数的组件不显示

c# - 在 Windows 窗体 C# 上查找组件(不是控件)

java - 使用 Jolt 变换对象数组

java - 如何使用 hamcrest java 断言嵌套列表

java - Spring MVC Controller : private shared methods.按值传递和线程安全

qt - Qml - 在两个组件之间传递属性值