У меня есть приложение типа списка todo, в котором хранятся все данные заметки в базе данных sqlite3. Для каждого действия в приложении требуется доступ к базе данных для редактирования различных частей данных в реальном времени.
В настоящее время у меня есть каждое действие, открывающее свой собственный объект DBManager (вспомогательный класс, который я создал для управления базой данных). Это вызывает проблемы, хотя и я хотел бы получить немного более глобальное решение для доступа, поэтому мне не нужно открывать/закрывать/создавать базу данных.
Я рассматриваю несколько вариантов и хотел бы услышать плюсы и минусы каждого, а также другие предложения.
-
Стиль Singleton. Имейте класс оболочки, который возвращает ссылку на единственный менеджер баз данных, чтобы любое его действие могло его использовать.
-
Статический менеджер. Пусть класс менеджера будет полностью статическим членом и открыть базу данных при загрузке. Легко доступен любому, кто нуждается в нем (что есть все).
-
Слияние между 1 и 2. Я мог бы создать класс менеджера баз данных, который инициализирует экземпляр элемента singleton базы данных, и все методы обработки данных были статическими. Тогда мне даже не понадобилась бы ссылка на синглтон для доступа к базе данных. Мне нравится это решение лучше всего, пожалуйста, укажите на недостатки.
Предложения?