php 抽象工厂模式

1,抽象工厂(Abstract Factory)模式,是创建设计模式的一种,它创建一系列相关的对象,而不必指定具体的类。该模式为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的时候,可以为此系列的产品族创建一个具体的工厂类。

主要角色:

抽象工厂(Abstract Factory)角色:它声明创建抽象产品对象的接口

具体工厂(Concrete Factory)角色:实现创建产品对象的操作

抽象产品(Abstract Product)角色:声明一类产品的接口

具体产品(Concrete Product)角色:实现抽象产品角色所定义的接口

2,例子

php 复制代码
//抽象A产品
interface ProductA
{
    public function show();
}

class RedA implements ProductA
{
    public function show()
    {
        echo '商品:RedA';
    }
}

class BlueA implements ProductA
{
    public function show()
    {
        echo '商品:BlueA';
    }
}

//抽象B产品
interface ProductB
{
    public function show();
}

class RedB implements ProductB
{
    public function show()
    {
        echo '商品:RedB';
    }
}

class BlueB implements ProductB
{
    public function show()
    {
        echo '商品:BlueB';
    }
}

//抽象工厂
interface Abstractfactory
{
    public function createA(): ProductA;

    public function createB(): ProductB;
}

//具体工厂Red
class Redfactory
{
    public function createA():ProductA
    {
        return new RedA();
    }
    public function createB():ProductB
    {
        return new RedB();
    }
}
//具体工厂Blue
class Bluefactory
{
    public function createA()
    {
        return new BlueA();
    }
    public function createB()
    {
        return new BlueB();
    }
}
$p=new Redfactory();
$p->createA()->show();//商品:RedA
相关推荐
那年窗外下的雪.12 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
COOLMO研究AI14 小时前
Python 如何在 AI 接口中实现请求幂等性:防止重复提交与重复扣费
人工智能·python·php
西安景驰电子14 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
wavemap17 小时前
HyperPHP 免费主机无限流量
服务器·php
长江&后浪18 小时前
防火墙的描述
开发语言·网络·php
三84418 小时前
文件包含基础
php
workflower19 小时前
例二:某汽车制造企业深度融合AI智能体,构建园区网络的智能运维体系
人工智能·机器学习·设计模式·机器人·云计算·汽车·制造
ly768920 小时前
Java 设计模式详解:从原则到 23 种经典模式
java·开发语言·设计模式
AI人工智能+电脑小能手1 天前
大白话说Java设计模式-14-适配器模式(业务实战篇)
java·设计模式·适配器模式·系统兼容·多渠道对接
略略略咯咯1 天前
(总结)设计模式
设计模式