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