我的应用程序有一些在主类中启动的线程。
我想在此 Swing 应用程序中使用 MVC。
Main 类等待来自某个客户端的套接字连接,然后当客户端连接时,我从我创建的 Telnet 类创建一个 telnet 对象。并且此类具有线程将使用的所有共享资源。
在此之后我启动我的线程,将 telnet 对象作为参数传递,因此它将用于同步线程。
我的应用程序中有五个线程:客户端、管理、服务器、节点和代理。
每一个都有特定的功能。
这就是我的场景。
我想在我的应用程序中使用 MVC 来更合理地组织这些线程,并使应用程序更易于维护。
我已经在 Swing 应用程序中使用了 MVC,但是没有线程。
最佳答案
也许是我,但你的问题对我来说似乎仍然很广泛,所以我只能提供广泛的建议。
- 我的重点是对象如何相互通信,我认为这对我来说比“线程”如何通信更重要。
- 我认为最好是使用观察者模式。
- 如果您的线程是使用 SwingWorker 创建的,那么您可以通过两种主要方式与您的 Swing 应用程序进行通信:
- 您可以使用发布/处理方法对,将对象传递给发布方法调用,然后进行 Swing 调用,或许可以通过
process
方法更改模型的状态。我也不喜欢这种方法,因为增加了耦合,因为 SwingWorker 必须知道它在process
方法内部调用的 View 或控制代码的结构和行为。 - 或者您可以使用 SwingWorker 的固有 SwingPropertyChangeSupport 能力来允许监听器(此处为 Controller )收到工作人员状态变化的通知。然后 Controller 可以提取已更改的信息并将其传递给模型。我倾向于赞成这种方法,因为对我来说,松散耦合要容易得多。
- 您可以使用发布/处理方法对,将对象传递给发布方法调用,然后进行 Swing 调用,或许可以通过
关于java - 基于 MVC 使用线程的 Swing 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24699403/