说我有A班:
public class A
{
private B _b;
public class A(B b)
{
Assert.That(b != null);
_b = b;
}
}
对象b需要一些复杂的初始化,例如:
b.Prop1 = ...
b.Prop2 = ...
b.Prop3 = ...
int answerToSomeComplexFormula = PerformComplexFormula();
b.Prop4 = answerToSomeCopmlexFormula
etc...
我不想在构造函数中执行此初始化。是否有某个模式的名称描述了返回具有复杂初始化的对象?类似的东西:
public class BInitializer
{
public B Create()
{
B b = new B();
// set up properties
return b;
}
}
BInitializer initializer = new BInitializer();
B b = initializer.Create();
A a = new A(b)
谢谢!
答案 0 :(得分:3)
您使用BInitializer的解决方案非常好,它被称为Factory Method设计模式。
在这里,您可以找到一些常见的创作设计模式:http://sourcemaking.com/creational_patterns