0
每当我看到工厂设计模式,它总是有一个简单的new FactoryName.build()
方法。当创建对象时,它们具有依赖性,但在我的情况下,我有一个现有的项目,我在运行时比在初始化时运行更多(考虑在现有的复杂代码库中,而不是简单的工厂设计示例)。因此,为了注入所需的依赖关系,我的build
的实现不可能仅实现为return new Blah(new This(), new That())
。工厂设计模式禁止?
所以如果我想传递的参数来构建(如:build(SomeENUM type)
,和/或甚至自动检测内部构建依赖关系(如:some logic to auto-detect SomeENUM type
)是一方或双方的固有错误的
好了,来电者一个工厂应该声明预先考虑它想要的实现类型。比喻说,它应该从餐厅菜单中下订单,而不要问服务员什么是好吃的? – Zombies 2013-03-22 07:44:07
的权利,但如果你使用抽象工厂模式,你可以决定去哪家餐馆(改变菜单)。见上面的例子。顺便说一句,Build Factory是基于你传递给工厂启动的参数。而在门的另一边,你会得到产品。 – 2013-03-22 07:54:08