首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP面向对象的设计模式-工厂模式(四)

PHP面向对象的设计模式-工厂模式(四)

原创
作者头像
堕落飞鸟
发布2023-04-28 15:58:11
发布2023-04-28 15:58:11
26900
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

产品族

产品族是一组相关的产品,例如不同品牌的汽车或电子设备。在抽象工厂模式中,每个具体工厂都将负责创建一个产品族的所有产品。下面是一个示例:

代码语言:javascript
代码运行次数:0
运行
复制
interface ProductAInterface {
    public function getName();
}

class ProductA1 implements ProductAInterface {
    public function getName() {
        return 'Product A1';
    }
}

class ProductA2 implements ProductAInterface {
    public function getName() {
        return 'Product A2';
    }
}

interface ProductBInterface {
    public function getName();
}

class ProductB1 implements ProductBInterface {
    public function getName() {
        return 'Product B1';
    }
}

class ProductB2 implements ProductBInterface {
    public function getName() {
        return 'Product B2';
    }
}

在上面的代码中,我们定义了两个产品族:ProductA和ProductB。每个产品族都有两个具体产品:ProductA1和ProductA2,以及ProductB1和ProductB2。

使用抽象工厂模式

使用抽象工厂模式时,您需要首先选择要使用的具体工厂,然后使用该工厂来创建产品。下面是一个示例:

代码语言:javascript
代码运行次数:0
运行
复制
$factory1 = new ConcreteFactory1();
$productA1 = $factory1->createProductA();
echo $productA1->getName(); // Output: Product A1

$factory2 = new ConcreteFactory2();
$productB2 = $factory2->createProductB();
echo $productB2->getName(); // Output: Product B2

在上面的代码中,我们首先创建了ConcreteFactory1和ConcreteFactory2的实例,然后使用它们来创建ProductA1和ProductB2的实例,并输出它们的名称。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 产品族
  • 使用抽象工厂模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档