Шаблоны Singleton и Adapter вместе - PullRequest
0 голосов
/ 12 марта 2020

Я создаю простое игровое приложение в Java для моего OOP экзамена. Критическая точка, кажется, база данных. Я смоделировал класс DBConnector, который должен управлять всеми взаимодействиями с БД. Это:

  1. предоставляет список всех доступных песен (эта игра похожа на OSU)
  2. загрузка / выгрузка новой песни
  3. обеспечивает рейтинг из каждой сыгранной игры

Я думал, что шаблон Singleton может иметь место для DBConnector, поскольку всему приложению требуется только один экземпляр этого класса. Но это серьезно нарушает принцип единой ответственности (SRP). Фактически, этот класс может быть изменен по нескольким причинам, по одному для каждой ранее описанной функции [1), 2), 3)].

Мне было интересно, применяется ли интерфейс адаптера (таким образом, используя Адаптер шаблон) между классом Singleton и другими классами, которые используют его для извлечения данных, может улучшить ситуацию. Нарушение SRP останется, но по крайней мере эти классы не будут затронуты изменениями в коде DBConnector.

1 Ответ

0 голосов
/ 13 марта 2020

Адаптер обычно используется для заполнения разрыва между вашим кодом и чужим. Когда вы управляете обоими интерфейсами, вам, вероятно, не нужен адаптер.

При этом, возможно, вы переоцениваете ограничения SRP. Ваш слой БД будет меняться при изменении данных. Это только одна причина для перемен. Одно изменение данных может повлиять на несколько методов, но это все еще только одна причина.

Так что, чтобы ответить на вопрос, нет , я не думаю, что Адаптер повысит ценность в этом случае. Для экзамена OOP достаточно синглтона DBConnector.

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