如何将抽象工厂迁移到laravel服务提供商?

时间:2018-10-15 06:51:13

标签: php laravel lumen

如何将其转移到服务提供商?

 class AbstractFactory
{
    /** @var array */
    private $factories = [
        "Generic" => Generic::class,
        "first" => first::class,
        "second" => second::class,
        "third" => third::class,
    ];


    public function __call($name, $arguments)
    {
        if (!isset($this->factories[$name])) {
            throw new \Exception("Factory not found for type: $name");
        }

        $factory = app($this->factories[$name]);

        return $factory->create(...$arguments);
    }
} 

现在每个工厂都有不同的接口实现。

对,现在我按如下方式使用这个工厂。

abstract AbstractClass{
    public function __construct()
    {
        $this->eventFactory = new AbstractFactory();
    }
}

我们知道我们无法实例化抽象类。 有什么解决办法吗?

0 个答案:

没有答案