Realmente depende de qué tipo (y cantidad / tamaño) de datos está hablando. Si se trata de un pequeño dato que se puede guardar de forma segura en la memoria durante la ejecución, mi recomendación sería algo así como una clase estática.
public static class Constants
{
public static int[] Levels = { 0, 100, 200, 400, 800, 1600, 3200, 6400 }
}
De esta manera, la experiencia requerida para llegar al Nivel X es Constatns.Levels[X - 1];
y acceder a otros datos también es fácil, si necesita una colección de Artículos, puede agregarla aquí también, si sus datos de Artículos son demasiado grandes para almacenarlos en la memoria, puede También implemente la lógica de almacenamiento en caché dentro de la clase estática.
Al hacerlo estático, se mantiene una única copia en la memoria y se asegura de que cada cliente de esta clase obtenga los mismos datos.
Si bien esto "combina estrechamente" sus clases, el acoplamiento estrecho no es algo malo si el diseño realmente lo necesita, lo que en el caso de las estadísticas de elementos y los gráficos de XP, en mi humilde opinión, es razonable acoplarlos firmemente. Siempre trato de mantenerlo simple, hasta que algo obliga a que sea complicado.
Bueno, si estuvieras usando Java, recomendaría poner tus datos en archivos XML y usar algo como JAXB o simple-xml para obtener los datos que deseas en los objetos correctos.
fuente