目的[1]

简单工厂模式是一个精简版的工厂模式。

它与静态工厂模式最大的区别是它不是『静态』的。因为非静态,所以你可以拥有多个不同参数的工厂,你可以为其创建子类。甚至可以模拟(Mock)它,这对编写可测试的代码来讲至关重要。 这也是它比静态工厂模式受欢迎的原因!

UML 图

★官方PHP高级学习交流社群「点击」管理整理了一些资料,BAT等一线大厂进阶知识体系备好(相关学习资料以及笔面试题)以及不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货

代码

  • SimpleFactory.php

<?php
namespace DesignPatternsCreationalSimpleFactory;
class SimpleFactory
{
public function createBicycle(): Bicycle
{
return new Bicycle();
}
}

  • Bicycle.php
<?phpnamespace DesignPatternsCreationalSimpleFactory;class Bicycle
{public function driveTo(string $destination){return $destination;}
}

用法

 $factory = new SimpleFactory();$bicycle = $factory->createBicycle();$bicycle->driveTo('Paris');

测试

  • Tests/SimpleFactoryTest.php
<?phpnamespace DesignPatternsCreationalSimpleFactoryTests;use DesignPatternsCreationalSimpleFactoryBicycle;
use DesignPatternsCreationalSimpleFactorySimpleFactory;
use PHPUnitFrameworkTestCase;class SimpleFactoryTest extends TestCase
{public function testCanCreateBicycle(){$bicycle = (new SimpleFactory())->createBicycle();$this->assertInstanceOf(Bicycle::class, $bicycle);}
}

八重樱:PHP 互联网架构师成长之路*「设计模式」终极指南​zhuanlan.zhihu.com

八重樱:PHP 互联网架构师 50K 成长指南+行业问题解决总纲(持续更新)​zhuanlan.zhihu.com

八重樱:面试10家公司,收获9个offer,2020年PHP 面试问题​zhuanlan.zhihu.com

★如果喜欢我的文章,想与更多资深开发者一起交流学习的话,获取更多大厂面试相关技术咨询和指导,欢迎加入我们的群-点击此处(群号码856460874)。

参考

  1. ^内容不错的话希望大家支持鼓励下点个赞/喜欢,欢迎一起来交流;另外如果有什么问题和想看的内容可以在评论提出

php设计一个盒子类代码_PHP设计模式之简单工厂模式(Simple Factory)代码实例大全(七)...相关推荐

  1. Java设计模式之简单工厂模式(Simple Factory)

    [Java与模式]简单工厂模式(Simple Factory---吴义) 首先说明,Java与模式一系列的文章均是参考阎宏博士的<Java与模式>一书,加上自身的一些体会的探索,产生如下文 ...

  2. Net设计模式之简单工厂模式(Simple Factory Pattern)

    一.简单工厂模式简介(Bref Introduction)        简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实 ...

  3. php的类图怎么生成_PHP设计模式之简单工厂模式

    PHP设计模式之简单工厂模式 先从简单工厂入门,不管是面试还是被他人面试,在问到设计模式的时候,大多数人都会提到工厂模式.毫无疑问,工厂相关的几种模式在设计模式中是最出名的也是应用比较广泛的一种模式. ...

  4. 设计模式之简单工厂模式(Simply Factory)摘录

    从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种 ...

  5. 一起学习设计模式--02.简单工厂模式

    工厂模式是最常用的一类创建型设计模式.我们所说的工厂模式是指工厂方法模式,它也是使用频率最高的工厂模式. 简单工厂模式是工厂方法模式的小弟,它不属于GoF 23种设计模式,但是在软件开发中应用也颇为频 ...

  6. 从零开始学设计模式(四):工厂模式(Factory Pattern)

    作者平台: | CSDN:blog.csdn.net/qq\_4115394- | 掘金:juejin.cn/user/651387- | 知乎:www.zhihu.com/people/1024- ...

  7. c++设计模式之简单工厂模式

    模拟场景 要求使用简单工厂模式设计一个可以创建不同几何形状(如矩形.圆形.三角形)的绘图工具,每个几何图形都具有绘制Draw()和擦除Erase()两个方法: UML类图 分析需求: 首先这个绘图工具 ...

  8. 设计模式:简单工厂模式(C++)【看不懂算我输】

    简单工厂模式介绍 简单工厂模式并不是Gof四人帮搞的23中设计模式中的一种,只不过大部分的设计模式书籍都会介绍它.所有我们还是来看看它,或许你觉得很简单.但是我们可以瞧瞧它有什么优点和缺点.如何进行改 ...

  9. 设计模式之 - 简单工厂模式

    一.什么是简单工厂模式 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式.在简单工厂模式中,一个抽 ...

最新文章

  1. 阿里、京东、美团、滴滴的 Dubbo / JVM / Spring 面试题及答案(2)
  2. Laya 位图字体制作(失败...)
  3. 在Virtualbox中的Ubuntu虚拟机中,安装Guest Additions客户端增强包时出错:分配介质 虚拟光盘 xxx\VBoxsGuestAdditions.iso 到虚拟电脑
  4. pipe 半双工_pipe 半双工_Linux管道PIPE的原理和应用
  5. 流与文件 java_java流与文件处理,请看代码:
  6. InheritableThreadLocal类原理简介使用 父子线程传递数据详解 多线程中篇(十八)...
  7. VMware Workstation下载,安装centos7.6 配置【图文教程】
  8. jquery实现同时展示多个tab标签+左右箭头实现来回滚动
  9. macOS 12兼容机型列表 想知道你的Mac是否支持macOS Monterey吗?
  10. if函数判断单元格颜色_IF条件函数10大用法完整版,全会是高手,配合SUMIF,VLOOKUP更逆天...
  11. *printf()格式化串安全漏洞分析(上)
  12. asp人脸识别,asp刷脸识别接口代码,微信公众号人脸识别代码
  13. 常用win10优化工具(后续继续更新)
  14. Aggressive cows 二分
  15. 如何开好项目kickoff会议
  16. 网络、域名、DNS、A记录以及MX记录的基本概念
  17. Ubuntu18.04下 LOAM_Velodyne 的编译安装(PCL为1.8.1)
  18. qpython androidhelper_QPython Androidhelper Api文档
  19. Weex实战分享|Weex在极客时间APP中的实践
  20. indexedDB(三)查询(详细)篇

热门文章

  1. Python入门学习笔记(9)
  2. 关于hive中的reduce个数的设置。
  3. Reids 批量删除有相同前缀的keys
  4. MOOC推荐及三门基础学科
  5. Linux下安装jboss并设置自启动服务
  6. BizTalk接收消息后路由失败
  7. ZT 为什么pthread_cond_t要和pthread_mutex_t同时使用 || pthread/Linux多线程编程
  8. JVM 内存区域方面的面试题
  9. 创建控制文件后的疑难解答
  10. spring boot配置德鲁伊