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
相关推荐
tianchang8 小时前
打造你的本地AI助手:基于RAG+向量数据库的智能问答系统
人工智能·设计模式·node.js
IT小白架构师之路1 天前
常用设计模式系列(十八)-责任链模式
设计模式·责任链模式
用户3074596982071 天前
🐶🐱 协变与逆变:用“动物收容所”讲清楚 PHP 类型的“灵活继承”
php
用户3074596982071 天前
🚀 PHP 面向对象四大核心知识点全面详解
php
源代码•宸1 天前
深入浅出设计模式——行为型模式之观察者模式 Observer
开发语言·c++·经验分享·观察者模式·设计模式·raii
herderl1 天前
【无标题】命名管道(Named Pipe)是一种在操作系统中用于**进程间通信(IPC)** 的机制
java·linux·服务器·嵌入式硬件·php
快起来别睡了1 天前
前端设计模式:让代码更优雅的“万能钥匙”
前端·设计模式
云博客-资源宝2 天前
php防注入和XSS过滤参考代码
开发语言·php·xss
huluang2 天前
PHP版本控制系统:高效文档管理
开发语言·php
Bruce_Liuxiaowei2 天前
绕过文件上传漏洞并利用文件包含漏洞获取系统信息的技术分析
运维·网络安全·php·apache