版权属于:
桑帅东的博客
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
工厂方法UML图
工厂方法模式包含如下角色:
相比简单工厂 ,创建对象这件事不再交由一个类来创建:把简单工厂拆分,每个产品由专门的一个简单工厂来实现,每个简单工厂实现工厂接口类。这样实现在同一等级结构中,支持增加任意产品。
ICar.php定义产品规范
<?php
namespace SimpleFactory;
interface ICar
{
public function driver();
}
具体产品实现
<?php
namespace SimpleFactory;
class Benz implements ICar
{
public function driver()
{
echo 'benz driver.';
}
}
class Bmw implements ICar
{
public function driver()
{
echo 'bmw driver.';
}
}
抽象工厂类IFactory
<?php
namespace Factory;
interface IFactory
{
public static function makeCar();
}
具体工厂实现
namespace Factory;
class FactoryBenz implements IFactory
{
public static function makeCar()
{
return new Benz();
}
}
class FactoryBmw implements IFactory
{
public static function makeCar()
{
return new Bmw();
}
}
客户端使用
<?php
// 客户端
$car = FactoryBenz::makeCar();
$car->driver(); // 输出 benz driver.
评论