码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【PHP设计模式03】抽象工厂模式


    【抽象工厂模式】

          前面讲的工厂方法模式,每增加一个产品都需要增加对应的工厂,这样就会存在很多工厂,但是在现实生活中的有些时候,人们并不关心产品是由哪个工厂制造的,就像一个服装厂既可以生产男装,也可以生产女装,我们只需造一个服装厂同时生产一个产品族下的男装和女装即可,而不必要分别创建两个服装厂。

          抽象工厂模式,则为一个产品族提供了统一的创建接口,当需要这个产品族的一系列相关对象时,就可以为此系列的产品族创建一个具体的工厂类来实现该接口。

       结构:1个工厂父类(interface或abstract)   、1个具体工厂子类(实现父类接口或继承抽象父类)  

                    多个产品父类(interface或abstract)   、多个具体产品子类(实现父类接口或继承抽象父类)  

          示例:下面以还是以服装厂生成衣服为例,一个服装厂,既可以生产男装也可以生产女装,每增加一个产品都需要在具体工厂子类中增加实例化方法:

    • 父类工厂接口 IFactory.php :
    1. namespace app\design03\controller;
    2. //父类工厂接口
    3. interface IFactory
    4. {
    5. //要求子类(分厂)必须可以实现的方法(职能):
    6. //生产男装
    7. public function createManClothes();
    8. //生产女装
    9. public function createWonManClothes();
    10. }
  • 相关阅读:
    BP神经网络原理与如何实现BP神经网络
    腾讯云数据安全中台保护方案获“首届全国商用密码应用优秀案例”
    leetcode数据结构基础
    C++类型转换-static_cast
    洛谷P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two
    物联网通信-末端监控点环网组网设计
    redis分布式锁的原子保证
    详细讲解修改allure报告自定义的logo和名称中文
    2022企业级常见面试题
    Petalinux2022 qemu 退出
  • 原文地址:https://blog.csdn.net/msllws/article/details/136250972
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号