我有一个工厂生产依赖外部对象的对象,我是否在工厂的构造函数中传递它?
答案 0 :(得分:2)
因为Factory Method调用了对象connstructor,所以你应该将所有必要的参数传递给factory方法。考虑一下:
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来减少这种依赖。
答案 1 :(得分:1)
我不确定,但你可能想看一下控制和依赖注入的反转。让你的头脑缠绕需要一点时间,但这是一种专门处理依赖关系的模式。