工厂应该坚持实体吗?

mxm*_*ile 0 c# design-patterns

工厂应该坚持他们建立的实体吗?或者那是打电话的工作?伪示例传入:

    public class OrderFactory
    {
      public Order Build()
      {
        var order = new Order();
        ....
        return order;
      }
    }

public class OrderController : Controller
{
    public OrderController(IRepository repository)
    {
       this.repository = repository;
    }

    public ActionResult MyAction()
    {
       var order = factory.Build();
       repository.Insert(order);
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

public class OrderFactory
{
  public OrderFactory(IRepository repository)
  {
     this.repository = repository;
  }

  public Order Build()
  {
    var order = new Order();
    ...
    repository.Insert(order);
    return order;
   }
}

public class OrderController : Controller
{
  public ActionResult MyAction()
  {
     var order = factory.Build();
     ...
  }
Run Code Online (Sandbox Code Playgroud)

}

这里有推荐做法吗?

Tom*_*ski 6

作为一般规则,工厂只有一个责任:创建一个实例并将其返回.我不会混淆持久性.我认为这是另一个班级的责任.在这种情况下,它将是控制器.