和抽象工厂类似,静态工厂模式用来创建一系列互相关联或依赖的对象
和抽象工厂模式不同的是静态工厂模式只用一个静态方法就解决了所有类型的对象创建
工厂里提供一个静态方法来创建不同的对象实例
final class StaticFactory { public static function factory(string $type): Formatter { if ($type == 'number') { return new FormatNumber(); } elseif ($type == 'string') { return new FormatString(); } throw new InvalidArgumentException('Unknown format given'); } }
被生产的产品和前面的抽象工厂/工厂方法 ,基本一样
先定义一个接口,不同的产品实现这一个接口