2013-03-22 2 views
0

Всякий раз, когда я вижу шаблон фабричного дизайна, он всегда имеет простой подход new FactoryName.build(). И при создании объектов у них есть зависимости, но в моем случае у меня есть существующие проекты, в которых я больше работаю во время выполнения, чем во время инициализации (подумайте внутри существующей, сложной базы кода, а не просто пример заводского дизайна). Поэтому для того, чтобы вводить необходимые зависимости, моя реализация build невозможна только как return new Blah(new This(), new That()).Заводские рисунки дизайна не нужны?

Так что, если я хочу, чтобы передать параметры построения (например: build(SomeENUM type), и/или даже автоматическое обнаружение зависимостей внутри сборки (например:. some logic to auto-detect SomeENUM type) Является ли один или оба из них по своей сути неправильно

ответ

0

"? создавать»модели типа (заводской сборки /) абстрактного процесса создания экземпляра объекта по скрывается, как создаются объекты и сделать систему независимой от процесса создания объекта.

Если я понимаю вас вопрос правильно, вы не можете «играть» с SomeENUM type внутри build завод процесс. Это главная цель шаблонов Factory, чтобы сделать весь процесс как черного ящик

Я взял экраны печати с хорошего доком .:

enter image description here enter image description here

+0

Ладно, так что абонент на завод должен объявить перед тем, какой тип реализации он хочет. Метафорически, он должен заказывать меню ресторана, а не спрашивать официанта, что хорошо поесть? – Zombies

+1

правильно, но если вы используете абстрактный шаблон фабрики, вы можете решить, в какой ресторан пойти (чтобы изменить меню). См. Пример выше. BTW, Build Factory основывается на том, какие параметры вы передали инициативе Factory. А на другой стороне двери вы получаете продукт. –

Смежные вопросы