工厂方法模式在 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