Nó thực sự phụ thuộc vào loại (và số lượng / kích thước) dữ liệu bạn đang nói đến. Nếu đó là một chút dữ liệu có thể được lưu giữ an toàn trong bộ nhớ trong suốt thời gian thực hiện, một cái gì đó giống như một lớp tĩnh sẽ là đề xuất của tôi.
public static class Constants
{
public static int[] Levels = { 0, 100, 200, 400, 800, 1600, 3200, 6400 }
}
Bằng cách này, kinh nghiệm cần có để đạt Cấp X là Constatns.Levels[X - 1];
và việc truy cập dữ liệu khác cũng dễ dàng, nếu bạn cần một bộ sưu tập Vật phẩm, bạn cũng có thể thêm nó vào đây, nếu dữ liệu Vật phẩm của bạn quá lớn để lưu trữ trong bộ nhớ, bạn có thể cũng thực hiện logic bộ nhớ đệm trong lớp tĩnh.
Làm cho nó tĩnh giữ một bản sao duy nhất trong bộ nhớ và đảm bảo rằng mọi máy khách của lớp này sẽ nhận được cùng một dữ liệu.
Mặc dù điều này "kết hợp chặt chẽ" các lớp của bạn với nhau, nhưng khớp nối chặt chẽ không phải là điều xấu nếu thiết kế thực sự cần nó, trong trường hợp thống kê Item và biểu đồ XP, thì IMHO, hợp lý để kết hợp chặt chẽ các lớp này. Tôi luôn cố gắng giữ cho nó đơn giản, cho đến khi một cái gì đó buộc nó phải phức tạp.