单例和适配器模式在一起

Singleton and Adapter patterns together

我正在 Java 中为我的 OOP 考试设计一个简单的游戏应用程序。 关键点似乎是数据库。我建模了一个 DBConnector class,它应该管理与数据库的所有交互。它们是:

  1. 提供所有可用歌曲的列表(这个游戏有点像 OSU)
  2. download/upload一首新歌
  3. 提供每场比赛的排名

我认为 Singleton 模式可能适用于 DBConnector,因为整个应用程序只需要这个 class 的一个实例。 但这样做严重违反了单一职责原则 (SRP)。事实上,这个 class 可以出于多种原因进行修改,一个用于前面描述的每个函数 [1), 2), 3) ].

我想知道是否在 Singleton class 和其他使用它的 class 之间应用适配器接口(因此使用 Adapter 模式)检索数据可以改善事情。 SRP 违规将继续存在,但至少那些 classes 不会受到 DBConnector 代码中任何更改的影响。

适配器通常用于填补您的代码与其他人的代码之间的差距。当您控制两个接口时,您可能不需要适配器。

话虽如此,您可能高估了此处 SRP 的限制。当数据更改时,您的 DB 层将更改。这只是改变的原因之一。一个数据变化可能会影响多个方法,但这仍然只是一个原因。

所以要回答这个问题,,我认为适配器不会在这种情况下增加价值。单例 DBConnector 足以通过 OOP 考试。