我有一个Java Swing应用程序。我想将信息上传到Web端点,并且该过程需要足够的时间来证明将工作转移到另一个线程上。我想使用Swing SwingWorker范例来实现这一点。我很困惑我应该在哪里扩展SwingWorker。我使用什么类来扩展SwingWorker?
现在,我为每个Web端点都有一个类,并且该类存储了发往该端点的所有数据,以及与端点连接所需的代码(位于名为upload()的方法下)。这些类是否应该实现SwingWorker,因为所有数据都需要执行它的任务?或者我应该有一个辅助类FooWorker实现SwingWorker,它将从一个内部Site对象调用Upload()?
如果我做一个二次FooWorker类,然后好像我不得不去一些麻烦的东西引用到现场为我实例(每个网络端点的一个线程/工人)每个FooWorker对象,但该网站不会被一堆SwingWorker方法和代码所污染。
如果我使用Site类扩展SwingWorker,那么我可以直接从EDT为每个站点调用.execute(),这对于我来说比每个站点创建一个工作者更清洁,然后让该工作者从该网站调用upload()。
只是寻找关于哪种方法更好的意见和想法。 Site类已经相当复杂了,如果我扩展SwingWorker类,恐怕会在其中添加一堆不相关的域。但是,如果我去那条路线,FooWorker类基本上只是Site类的一个薄包装。这种包装是否值得让Site类只关注其自己的域方法/数据?