Я создаю простое игровое приложение в Java для моего OOP экзамена. Критическая точка, кажется, база данных. Я смоделировал класс DBConnector
, который должен управлять всеми взаимодействиями с БД. Это:
- предоставляет список всех доступных песен (эта игра похожа на OSU)
- загрузка / выгрузка новой песни
- обеспечивает рейтинг из каждой сыгранной игры
Я думал, что шаблон Singleton может иметь место для DBConnector
, поскольку всему приложению требуется только один экземпляр этого класса. Но это серьезно нарушает принцип единой ответственности (SRP). Фактически, этот класс может быть изменен по нескольким причинам, по одному для каждой ранее описанной функции [1), 2), 3)].
Мне было интересно, применяется ли интерфейс адаптера (таким образом, используя Адаптер шаблон) между классом Singleton и другими классами, которые используют его для извлечения данных, может улучшить ситуацию. Нарушение SRP останется, но по крайней мере эти классы не будут затронуты изменениями в коде DBConnector
.