использовать Java Swing работник в качестве одиночного для резервного копирования данных приложения в фоновом режиме - PullRequest
1 голос
/ 28 мая 2011

Я планирую использовать Java SwingWorker в качестве синглтона для периодического резервного копирования данных приложения (возможно, в сочетании с таймером Swing или java.util.Timer).такая стратегия здорова?является ли применение Singleton для SwingWorker хорошей идеей?

Ответы [ 2 ]

2 голосов
/ 28 мая 2011

Я думаю, вы могли бы легко использовать SwingWorker для сохранения состояния вашей модели.Если вы хотите выполнить эту задачу в фоновом режиме, желательно сделать текущую копию вашего состояния и сохранить ее, поэтому вам не нужно беспокоиться о синхронизации состояния модели, пока вы сохраняете ее в другом потоке.

В том, что касается восстановления, вы, вероятно, захотите убедиться, что пользователь не сделает, а затем потеряет все, что он сделал во время восстановления модели из предыдущей версии.Что касается успешного восстановления, вы, вероятно, установите текущее состояние.Таким образом, в этом случае даже целесообразно заблокировать любой пользовательский ввод, поэтому вы можете легко сделать это в текущем потоке.Во-первых, для пользователя отображается некоторая соответствующая информация / диалог о том, что состояние восстанавливается.

2 голосов
/ 28 мая 2011

Я не вижу, что SwingWorker имеет отношение к задаче резервного копирования.Я также не вижу, с чем связан паттерн синглтон.Это задача для Timer.Возможно, вам следует быть осторожным, чтобы не запускать его в нескольких потоках, но это должно быть выполнимо, не заключая его в единое целое.

...