对软件组件使用静态 java 对象

Use of a static java object for a Software Component

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

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

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

编辑: 写这篇文章的时候突然想到的另一个想法是将静态对象 MessageQue 放入一个 MessegeQueHandler class 中,这样可以随意创建 MessegeQueHandler class 但 messege que 将存在在可能更面向对象的背景中。

感谢指导。

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