Статические классы в C #, в чем плюсы / минусы?
Я программирую небольшую игру для своего школьного задания, игра представляет собой простую 2D-игру с монстрами, предметами и пулями. В основном вы бегаете вокруг и пытаетесь собрать все монеты предмета, монстры пытаются помешать вам, и вы можете сбивать их пулями, которые вы собираете. Очень просто.
Вопрос в том, что я добавил монстров, предметы, стены, игрока и пули в статический класс с именем LiveObjects, и к этим объектам я могу получить доступ из любого места в коде. Это плохая практика? Какая альтернатива? (Это'не многопоточные)
LiveObjects.cs
internal static class LiveObjects
{
public static List items = new List(); // List with all the items
public static List monsters = new List(); // List with all present monsters
public static List walls = new List(); // List with the walls
public static List bullets = new List(); // List with the bullets
public static Player player = new Player(0, 0); // The player object
}
Я использую множество различных классов для манипулирования данными внутри LiveObjects, а затем, чтобы избежать передачи всего списка, я могу просто вызвать его непосредственно внутри любого метода.