我从DataMapper
模式中获取线索来创建这样的内容:
class BusinessObjectCreator
{
public function create()
{
//Acquire Data
$number = filter_input(INPUT_POST, "number", FILTER_SANITIZE_INT);
//create and populate object
$object = new Object();
$object->setNumber($number);
return $object;
}
}
//usage:
$objectInstance = (new BusinessObjectCreator())->create();
//examples of usage once created
$objectInstance->someBusinessFunction();
echo $objectInstance->getNumber();
但对我而言,它看起来也像Factory
模式或Builder
模式。
这是什么?我是否正确编码了?
目的是使用数据创建一个填充的对象实例。然后我可以使用创建的对象对数据进行操作。
答案 0 :(得分:0)
这看起来像一个工厂方法。命名约定使您认为它是构建器模式,它具有用于构建具体对象的单独对象。您有一个单独的对象,但不像生成器那样设置数据。
我不太熟悉PHP,但为了使它成为构建器模式,您可以为数据创建方法,然后在方法链的末尾调用create()/ build()。
它的创作看起来像这样
$objInstance = (new BusinessObject())->number($number)->create();
由于您只有一个具有创建对象的方法的类,因此该模式属于工厂方法类别。通常在创建对象时有很多潜在的不同配置时使用构建器,因此如果只设置一个数据,则可以坚持使用工厂方法。