2010-01-28 46 views
3

我有一个工厂,使对象依赖于外部对象,我传递它在工厂的构造函数?工厂模式与外部依赖关系

+0

是的。 .......... – 2010-01-28 07:30:57

+0

有没有更好的方法?这个工厂不会依赖这个外部对象吗? – jiji 2010-01-28 07:36:32

回答

2

因为工厂方法调用对象构造函数,所以您应该将所有必要的参数传递给工厂方法。考虑如下因素:

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 2010-01-30 02:09:18

1

我不确定,但你可能想看看控制和依赖注入的反转。它需要一点点才能让你的头部缠绕,但这是专门处理依赖关系的模式。