工厂模式是一种创建型设计模式,通过定义一个专门创建其他类的工厂类来封装对象实例化过程。在PHP中,它常用于根据条件返回不同类的实例,如通知系统中通过工厂创建邮件或短信通知对象,调用者无需关心具体实现类。其核心优势在于解耦对象使用与创建,提升代码灵活性和可维护性。例如,定义Notification接口及其实现类EmailNotification和SmsNotification后,由NotificationFactory根据传入类型决定返回哪个实例。这样新增类型只需修改工厂逻辑,业务代码无需改动。适用场景包括对象创建复杂、需依据运行时参数选择类或希望集中管理对象生成的情况。简单工厂模式虽非严格意义上的设计模式,但在实际开发中极为实用。

工厂模式是一种常见的设计模式,主要用于创建对象。它将对象的创建过程封装起来,避免在代码中直接使用 new 关键字实例化类,从而提高代码的灵活性和可维护性。在 PHP 中,工厂模式特别适用于需要根据条件返回不同类实例的场景。
工厂模式的核心思想是:定义一个专门负责创建其他类的类,也就是“工厂”。调用者不需要知道具体创建的是哪个类的实例,只需要通过工厂提供的接口获取对象即可。
这种模式解耦了对象的使用和创建,使得新增类或修改类时,调用代码无需改动。
假设我们有一个发送通知的功能,支持邮件和短信两种方式:
立即学习“PHP免费学习笔记(深入)”;
系统介绍 45°C 商城系统,以 Thinkphp5.0 + Uniapp + Layui2.9 + Vue 为技术基石,精心打造出的全新 MINI 商城应用。其功能覆盖全面,无论是 PC 商城、H5 商城,还是公众号商城、微信小程序以及抖音小程序的制作都能完美胜任。采用标准系统结合插件模式开发,用户能够极为便捷地定制专属的个性模块。整个系统,从程序设计到 UI 呈现,都秉持着一贯的小而美理念。程
0
定义接口:
interface Notification {
public function send($message);
}
实现具体类:
class EmailNotification implements Notification {
public function send($message) {
echo "发送邮件: " . $message;
}
}
class SmsNotification implements Notification {
public function send($message) {
echo "发送短信: " . $message;
}
}
创建工厂类:
class NotificationFactory {
public static function create($type) {
if ($type === 'email') {
return new EmailNotification();
} elseif ($type === 'sms') {
return new SmsNotification();
} else {
throw new InvalidArgumentException("不支持的通知类型");
}
}
}
使用方式:
$notifier = NotificationFactory::create('email');
$notifier->send('订单已发货');
工厂模式适合以下情况:
基本上就这些。工厂模式虽然简单,但在实际开发中非常实用,尤其是在构建可扩展系统时。
以上就是php工厂模式的介绍的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号