Всякий раз, когда я вижу шаблон фабричного дизайна, он всегда имеет простой подход new FactoryName.build()
. И при создании объектов у них есть зависимости, но в моем случае у меня есть существующие проекты, в которых я больше работаю во время выполнения, чем во время инициализации (подумайте внутри существующей, сложной базы кода, а не просто пример заводского дизайна). Поэтому для того, чтобы вводить необходимые зависимости, моя реализация build
невозможна только как return new Blah(new This(), new That())
.Заводские рисунки дизайна не нужны?
Так что, если я хочу, чтобы передать параметры построения (например: build(SomeENUM type)
, и/или даже автоматическое обнаружение зависимостей внутри сборки (например:. some logic to auto-detect SomeENUM type
) Является ли один или оба из них по своей сути неправильно
Ладно, так что абонент на завод должен объявить перед тем, какой тип реализации он хочет. Метафорически, он должен заказывать меню ресторана, а не спрашивать официанта, что хорошо поесть? – Zombies
правильно, но если вы используете абстрактный шаблон фабрики, вы можете решить, в какой ресторан пойти (чтобы изменить меню). См. Пример выше. BTW, Build Factory основывается на том, какие параметры вы передали инициативе Factory. А на другой стороне двери вы получаете продукт. –