我有一個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類只關注其自己的域方法/數據?