Пишу свою игру в качестве хобби на юнити и разбираюсь в паттернах. Ситуация такая. Инициализирую игровой объект. Далее добавляю ему разные компоненты - типа компонентов здоровья, ближнего боя, дальнего боя, передвижение, прыжок, подбор лута и т.д. Фактически создание игрового объекта можно обернуть в классический Builder или фабрику.
Но суть вопроса в другом. Допустим я собрал объект, он в игре, и в процессе игры он должен получить дополнительный функционал - т.е. мне нужно добавить ему еще какие то механики (компоненты). Билдер уже как бы не подходит, т.к. обычно билдер используют так (по крайней мере примеры с таким алгоритмом использования билдера):
gameObjectBuilder.AddSomeComponent1();
gameObjectBuilder.AddSomeComponent2();
gameObjectBuilder.AddSomeComponent3();
var gameObject = gameObjectBuilder.Build();
Т.е. классический билдер возвращает НОВЫЙ построенный объект. Можно ли добавить в билдер сеттер, чтобы указать какой объект нужно "достроить"? Типа:
gameObjectBuilder.SetGameObject(gameObject);
gameObjectBuilder.AddSomeComponent1();
gameObjectBuilder.AddSomeComponent2();
gameObjectBuilder.AddSomeComponent3();
Но в таком случае, у билдера метод `gameObjectBuilder.Build(); ` уже не нужен будет. И это уже не совсем билдер. Может есть название такому паттерну? Их же много придумали. Поиск на запрос "паттерн, который добавляет объекту новый функционал" предлагает декоратор, но это совсем не то - я ничего не обворачиваю.