Допустим, у меня есть абстрактный класс Drink и фабричный метод, который выбирает тип напитка (Wine, Beer и т. Д.) Для создания во время выполнения.
Каждый напиток нуждается в некоторых аргументах для правильной инициализации. Некоторые из них являются общими для всех напитков; например, всем им может потребоваться аргумент DrinkConfig.
Но каждый напиток может иметь свои собственные уникальные требования. Возможно, для инициализации Wine необходим объект-помощник Sommelier. Пиво не нуждается в этом, но может нуждаться в собственных вспомогательных объектах.
Так что я должен перейти к заводскому методу? Когда я его вызываю, у меня есть все вспомогательные объекты, так что я могу просто передать их все на завод. Но это может закончиться большим количеством аргументов. Есть ли лучший способ создать это?
EDIT: Давайте предположим, что я не могу просто создать вспомогательные объекты на фабрике; они доступны только у звонящего.