初始化模式?

时间:2013-10-17 19:45:56

标签: design-patterns

说我有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)

谢谢!

1 个答案:

答案 0 :(得分:3)

您使用BInitializer的解决方案非常好,它被称为Factory Method设计模式。

在这里,您可以找到一些常见的创作设计模式:http://sourcemaking.com/creational_patterns