前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >每天认识一种设计模式之简单工厂模式

每天认识一种设计模式之简单工厂模式

原创
作者头像
JDK7.0
修改2025-03-13 11:08:57
修改2025-03-13 11:08:57
830
举报

简单工厂模式定义:

通过一个工厂类根据输入参数决定创建哪种具体产品对象。

适用场景

  • 场景特点:创建逻辑简单,产品类型有限,且不频繁扩展。
  • 典型应用:支付方式选择、文件格式解析器、数据库驱动切换。
示例:支付方式选择
代码语言:php
复制
// 支付接口
interface Payment {
    public function pay($amount);
}

// 具体支付类
class Alipay implements Payment {
    public function pay($amount) {
        echo "支付宝支付:{$amount}元\n";
    }
}

class WechatPay implements Payment {
    public function pay($amount) {
        echo "微信支付:{$amount}元\n";
    }
}

// 简单工厂
class PaymentFactory {
    public static function createPayment($type) {
        switch ($type) {
            case 'alipay':
                return new Alipay();
            case 'wechat':
                return new WechatPay();
            default:
                throw new Exception("不支持的支付方式");
        }
    }
}

// 使用
$payment = PaymentFactory::createPayment('alipay');
$payment->pay(100); // 输出:支付宝支付:100元

痛点解决

  • 集中管理支付类的创建,避免在业务代码中频繁使用 new Alipay()new WechatPay()
  • 缺点:新增支付方式需修改工厂类,违反开闭原则(适合小型项目或固定场景)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 示例:支付方式选择
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档