Realmente depende de que tipo (e quantidade / tamanho) de dados que você está falando. Se for um pequeno pedaço de dados que pode ser mantido em segurança na memória durante a execução, algo como uma classe estática seria minha recomendação.
public static class Constants
{
public static int[] Levels = { 0, 100, 200, 400, 800, 1600, 3200, 6400 }
}
Dessa forma, a experiência necessária para chegar ao nível X é Constatns.Levels[X - 1];
fácil e o acesso a outros dados também é fácil. Se você precisar de uma coleção de itens, poderá adicioná-los aqui também. Se os dados dos itens forem grandes demais para armazenar na memória, você poderá Também implemente lógica de cache dentro da classe estática.
Tornar estático mantém uma única cópia na memória e garante que todos os clientes desta classe obtenham os mesmos dados.
Embora isso "junte fortemente" suas classes, o acoplamento apertado não é algo ruim se o design realmente precisar dele, o que, no caso de estatísticas de itens e gráficos XP, é, IMHO, razoável para acoplá-las firmemente. Eu sempre tento mantê-lo simples, até que algo o force a ser complicado.