Я программировал версию программного обеспечения настольной игры. До сих пор я писал классы, которые будут соответствовать физическим объектам на игровом поле. Мне хорошо писать логику программы, однако я обнаружил, что многие логические классы требуют доступа к тем же объектам.Хороший стиль программирования при работе с несколькими объектами
Сначала я передавал соответствующие объекты методам, как их называли, но это становилось очень утомительным, особенно когда методам требовалось много объектов для выполнения своих задач. Чтобы решить эту проблему, я создал класс, который инициализирует и сохраняет все необходимые мне объекты. Это позволяет мне получить доступ к объекту из любого класса, вызвав, например, Assets.dice().
Но теперь, когда я думал об этом, это кажется неправильным. Вот почему я здесь, боюсь, что создал класс богов. Является ли этот страх необоснованным, или я создал рецепт катастрофы?
Это не синглтон, поскольку доступ осуществляется через статические интерфейсы. Но он страдает от многих из тех же недостатков, поэтому я воздержусь от маркировки. – DJClayworth
Спасибо Мэтт. Я изменил код, так что только основной файл логики создает и имеет прямой доступ к объекту GameAssets. Затем это передается другим классам/методам. Это все еще кажется неправильным, возможно, потому, что моя логика сверху вниз по дизайну. Я в конечном итоге передаю этот объект повсюду. Но, возможно, это другой вопрос сам по себе - как разбить игровую логику на мелкие биты? Мне нужно подумать об этом. – Glitch