在PHP工厂或工厂方法中设置对象值

时间:2018-10-24 19:05:50

标签: php design-patterns

我有一个问题,在工厂方法中正确设置值吗?

类似这样的东西:

class ObjectFactory {
     public static function create($config)
     {
          $object = new Object();
          $object->setDependency(// something);
          $object->setValue(// something);
          return $object;
     }
}

正确吗?也许应该是建造者?我该怎么称呼它?是ObjectBuilder,ObjectFactory还是ObjectCreator?

请向我解释创建具有某些依赖项或初始值的对象的情况。我知道它应该是构建器模式,但我听说构建器比返回具有很少初始值或依赖性的对象要先进。那么...解决方案是什么?

1 个答案:

答案 0 :(得分:1)

首先,它不是Builder Pattern。当实例化对象后有多种方法构造/配置对象时,可以使用Builder,但是这些方法具有共同的常规步骤。因此,您将这些步骤抽象到名为Builder的接口中,然后有一个名为Director的类,该类使用Builder接口以所需的顺序调用这些步骤。

第二,您发布的代码与Factory Method Pattern无关,后者的工厂方法是在基类中充当模板的方法,并且将在派生类中实现。

代码中的模式通常称为Factory Pattern,您只需将构造对象的特定过程封装到方法中,就可以轻松地重用它。