Php 为构造函数创建包装器可以吗?

Php 为构造函数创建包装器可以吗?,php,architecture,constructor,Php,Architecture,Constructor,我们公司正在讨论是围绕构造函数构建包装器更好,还是直接使用构造函数更好。 那么使用这个可以吗 public function createUser($number, $firstname, $lastname) { return new User($number, $firstname, $lastname); } 例如: $user = $this->createUser($number, $resultList->firstname, $resultLi

我们公司正在讨论是围绕构造函数构建包装器更好,还是直接使用构造函数更好。 那么使用这个可以吗

public function createUser($number, $firstname, $lastname) {
        return new User($number, $firstname, $lastname);
    }
例如:

$user = $this->createUser($number, $resultList->firstname, $resultList->lastname);


虽然我不确定您的示例是否理想,但您完全可以将构造函数包装到不同的函数中

它们使用包装器来创建真正有用的设计模式


请注意,模式和工厂模式都使用此技术。

是的,实际上有多个设计模式依赖于此技术。
工厂模式
?您正在讨论设计模式yeahZend Framework 2使用的是:-)他们以一种我几乎喜欢的方式实现了IoC-使用服务定位器满足的构造函数依赖项注入,您可以为此编写一个工厂类作为构造函数包装器(或仅为相同目的使用闭包)。因此,是的,除非您将其误用或过度使用于其他用途,否则这是正常的……在实践中(耦合、可测试性等),内部工厂方法和使用
new
操作符之间没有区别——实际上,您只是在推迟它。这并不是说它们没有用处——我经常使用它们将公共组件注入到创建的对象中,这样我就可以保持arg列表中“真实”参数的干净(例如)。然而,这主要是干燥和可读性。但是内部工厂方法(上面显示的)和外部工厂对象()之间有很大的区别。
$user = new User($number, $firstname, $lastname);