Как только вы начинаете разбираться в языке программирования, написание кода, который вам нужен становится достаточно простым. Гораздо сложнее писать код, который будет легко изменять в будущем. Очень редко бывает так что мы можем предполагать что произойдет в будущем, когда запускаем наш редактор.
У нас есть мощный инструмент, упрощения изменений - снижение связности (decoupling). Когда мы говорим два участка кода "слабо связаны (decoupled)", мы имеем в виду что изменение одного обычно не требует изменения другого. Когда вам нужно добавить новый функционал в игре, чем меньше частей кода вам придется затронуть - тем лучше.
Шаблон Компонент(Component) снижает связность различных областей вашей игры друг от друга с помощью единой сущности, обладающей всеми их аспектами. Очередь событий (Event Queue) снижает связность двух общающихся друг с другом объектов, как статически так и во время работы (in time). Шаблон Поиск службы (Service Locator) позволяет коду обращаться к объекту, не привязываясь к коду, который его предоставляет.
Шаблоны