2025-04-14

工厂方法模式在 PHP 代码中被广泛使用。当您需要为代码提供高度灵活性时,它非常有用。

案例:手机加工

定义interface

interface PhoneProcessInterface {
  public function process($phone_info);
}

 

定义各种手机加工的厂商

class IphoneProcess implements PhoneProcessInterface {
  public function process($phone_info)
  {
    echo 'iphone process....';
  }
}

class HuaweiProcess implements PhoneProcessInterface {
  public function process($phone_info)
  {
    echo 'Huawei process....';
  }
}

class SamsungProcess implements PhoneProcessInterface {
  public function process($phone_info)
  {
    echo "SamSung process...";
  }
}

定义工厂会帮助实例化. 外部直接使用

class PhoneFactory {
  public function samsung($phone_info) {
    return (new SamsungProcess())->process($phone_info);
  }

  public function huawei($phone_info) {
    return (new HuaweiProcess())->process($phone_info);
  }


  public function iphone($phone_info) {
    return (new IphoneProcess())->process($phone_info);
  }
}

测试

$phone_info = [
  'name' => 'iphone',
  'version' => '15'
];
$phone_factory = new PhoneFactory();
if ($phone_info['name'] == 'iphone') {
  $phone_factory->iphone($phone_info);
}

 

输出Iphone process

 

标签: 设计模式