Es hängt wirklich davon ab, über welche Art (und Menge / Größe) von Daten Sie sprechen. Wenn es sich um ein kleines Datenbit handelt, das für die Dauer der Ausführung sicher im Speicher gespeichert werden kann, wäre so etwas wie eine statische Klasse meine Empfehlung.
public static class Constants
{
public static int[] Levels = { 0, 100, 200, 400, 800, 1600, 3200, 6400 }
}
Auf diese Weise ist die Erfahrung, die erforderlich ist, um Level X zu erreichen, Constatns.Levels[X - 1];
und der Zugriff auf andere Daten ist ebenfalls einfach. Wenn Sie eine Sammlung von Elementen benötigen, können Sie diese auch hier hinzufügen. Wenn Ihre Elementdaten zu groß sind, um sie im Speicher zu speichern, können Sie dies Implementieren Sie auch die Caching-Logik innerhalb der statischen Klasse.
Wenn Sie es statisch machen, bleibt eine einzelne Kopie im Speicher und stellt sicher, dass jeder Client dieser Klasse dieselben Daten erhält.
Während dies Ihre Klassen "eng miteinander verbindet", ist eine enge Kopplung keine schlechte Sache, wenn das Design sie wirklich benötigt, was im Fall von Item-Statistiken und XP-Diagrammen meiner Meinung nach vernünftig ist, diese eng zu koppeln. Ich versuche immer, es einfach zu halten, bis etwas es zwingt, kompliziert zu werden.