![]() |
1
4
我将在您的工厂类中创建不同的重载方法。
编辑: 如果希望工厂类中只有一个方法,则另一个实现是:
|
![]() |
2
2
|
![]() |
3
1
工厂首先应该创建非常相似的对象。这意味着,尽管所有这些对象都是饮料,但工厂方法可能并不合适,因为每种饮料都与其他饮料有很大不同。 尽管如此,您可以传递一个对象列表,其大小等于要设置的属性数。然后,每个对象都将表示要在相应对象的构造函数中设置的值,按设置这些变量的顺序排列。这样做的缺点是,在进行调用之前,必须在工厂外格式化列表,这有点笨拙。 |
![]() |
4
0
我很想提供一个简单的解决方案,其中你的成分来源于一个基本类“饮品成分”。您必须匹配用于特定饮料的子类。 显然,你可能会想为这些原料建立另一家工厂,但这会导致鸡和蛋的问题。 |
![]() |
5
0
此外,在许多情况下,像Spring这样的框架将允许您在配置文件而不是代码中描述这些关系。 如果您真的需要在运行时从调用代码传入帮助程序,我建议您阅读论文“Arguments and Results”( http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.50.7565 |
![]() |
6
0
在这种情况下,我通常会寻找其他解决方案,而不是传递变量。
这是一个很好的运行时依赖注入用例。某种形式的依赖注入框架将使这一点非常简单、易懂,而且只是一种工作,而无需传递所有这些属性。 |
![]() |
7
0
这看起来是个完美的案子
|
![]() |
shortCircuit77 · 抽象类有选择地公开基于派生类型的方法 3 年前 |
![]() |
trzczy · 如何在ZF3中触发fieldset工厂 7 年前 |
![]() |
Zuri · TableView中的自定义复选框 7 年前 |
|
AndreasN · C#异步(工厂)方法和LINQ[关闭] 7 年前 |
![]() |
Agustin Castro · ddd中命令处理程序的正确使用 7 年前 |
![]() |
Bruno · 如何在Scala中创建具有有界类型参数的自定义序列? 7 年前 |