2010-01-28 2 views
3

У меня есть фабрика, которая делает объекты, которые зависят от внешнего объекта, передать его в конструктор фабрики?Заводской шаблон с внешней зависимостью

+0

Да. .......... –

+0

Есть ли лучший способ? Разве эта фабрика не будет зависеть от этого внешнего объекта? – jiji

ответ

2

Поскольку Factory Method вызывает объект connstructor, вы должны передать все необходимые паразиты заводскому методу. Рассмотрим folowing:

class Foo { 
} 

class Boo { 
    public Boo(Foo foo) {} 
} 

static class BooFactory { 
    public static Boo CreateBoo(Foo foo) { 
    return new Boo(foo); 
    } 
} 

Другой альтернативный, как предполагает aaronls, вы можете использовать Inversion of Control для снижения таких зависимостей.

+0

Отлично, сэр, спасибо! – jiji

1

Я не уверен, но вы можете взглянуть на инверсию управления и инъекции зависимостей. Требуется немного, чтобы обернуть голову, но это шаблон для работы с зависимостями.