Как провести сбор файлов по всему приложению? - PullRequest
0 голосов
/ 12 апреля 2011

В моем мобильном приложении мне нужно хранить коллекцию объектов File (рисунки, документы), к которым можно получить доступ во всем приложении, и пользователи могут выполнять различные операции над коллекцией:

  • просмотр всех / отдельных файлов
  • загрузка подмножеств коллекции на сервер
  • обмениваться отдельными файлами
  • ...

Коллекция инициализируется только один раз.

Мне было интересно, будет ли хорошей идеей использовать одноэлементный шаблон в качестве объекта, который содержит коллекцию, поэтому мне не нужно инициализировать коллекцию каждый раз, когда пользователь открывает конкретный экран?

Ответы [ 4 ]

1 голос
/ 12 апреля 2011

Абсолютно, такова цель синглтон-паттерна.

Из Википедия , Шаблон Singleton -

полезно, когда ровно один объект необходимо координировать действия через система.

Пример:

public class SingletonCollection {

    private Collection<File> fileCollection;
    private static SingletonCollection instance;

    private SingletonCollection() {
        fileCollection = new ArrayList<File>();
    }

    public static SingletonCollection getInstance() {
        if (instance == null) {
            instance = new SingletonCollection();
        }

        reutrn instance;
    }

    public void addFile(File f) {
        fileCollection.add(f);
    }

    public Collection<File> getFiles() {
        return fileCollection;
    }
}
0 голосов
/ 12 апреля 2011

для Java> = 1,5

public enum FileCollector
{
    INSTANCE;
    private FileCollector()
    {
        List _temp = new ArrayList();
        File f = new File("properties");
        _temp.add(f);
         fileContainer = Collections.unmodifiableList(_temp);
    }

   private final Collection<File> fileContainer;

   public Collection<File> getFiles() {
        return fileContainer;
    }

}
0 голосов
/ 12 апреля 2011

Если вы используете Java ME, попробуйте RecordStore. Вы можете получить к нему доступ из любого места в приложении.

0 голосов
/ 12 апреля 2011

Если коллекция инициализируется только один раз, используйте singleton.Без сомнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...