2013-07-22 5 views
1

При программировании моего веб-календаря я должен думать об использовании статических методов или нет. Существует абстрактный класс Serializer, который сохраняет и загружает контент в определенных файлах. Должен ли я синхронизировать оба метода загрузки и сохранения, если они являются статическими?Статические и синхронизированные в веб-приложении Java

Другим вариантом было бы определить оба метода как динамическое содержимое класса, класс не был бы абстрактным, и если я хочу сохранить или загрузить данные, я использую экземпляр Serializer.

Благодарим за ответы. :)

+0

Вам необходимо написать код, защищенный потоками. Удачи. – SLaks

+0

И еще один способ: асинхронно отправлять файлы в Serializer и позволять ему ставить их в очередь на Serialize. – m0skit0

ответ

0

Для обработки случая, когда более одного процесса может обращаться к файлу, вы должны использовать блокировку файла (см. [FileChannel.lock]). 1 Или, лучше, используйте соответствующую базу данных.

+0

Хорошо, я смотрю, что я использую базу данных. Было бы лучше написать одноэлементный объект, который имеет только доступ к базе данных для доступа к базе данных? Я думаю, да .. – salted

+0

Синглтон только добавляет осложнения к 'static'. Сходная статика - это, как правило, плохая идея. Гораздо лучше просто создать объект один раз, передав его через конструкторы./Тем не менее, блокировка файла является предпочтительным способом блокировки файла. –

+0

Спасибо, это мне помогает. :) – salted

Смежные вопросы