一、工厂设计模式

index.php

$db = IMooc\Factory::createDatabase();

使用工厂类的静态方法直接创建一个dababase对象,当类名发生修改时,在工厂里修改即可。

IMooc/Factory.php

二、单例设计模式

保证在整个脚本运行期间,只有一个对象的实例,比如数据库操纵对象

Database.php

Factory.php

index.php

output同一个对象;

object(IMooc\Database)#1 (0) { }

object(IMooc\Database)#1 (0) { }

object(IMooc\Database)#1 (0) { }

三、注册树模式

将对象注册到全局的注册树上,一般是在环境初始化时,将对象注册,在实现业务逻辑时,直接get获取即可;

注册树类Register.php

在工厂类里进行注册,将$db注册到$register注册树上

在index.php中调用createDatabase进行注册

output:object(IMooc\Database)#1 (0) { }

php注册树模式,PHP三种基本设计模式(工厂模式、单例模式、注册树模式)相关推荐

  1. 慕课网----大话PHP设计模式 三(三种基本设计模式-工厂模式,单例模式,注册树模式)

    1)工厂模式: 工厂方法或者类生成对象,而不是代码中直接new 多用来生成对象 好处.如果很多个文件都使用了这个类的话,如果修改需要去每个文件下都进行修改,而使用工厂模式的话,则只用在类里面修改创建方 ...

  2. B2B2C模式的三种核心逻辑

    B2B2C模式的出发点,是服务原有B2C模式,促进原有的B端和C端完成更加便利.更加科学的.更加顺畅平滑的交易,然后慢慢地,形成平台式的应用场景服务,将B端和C端都变成平台的客户,从而形成一个新的产业 ...

  3. 火狐/谷歌浏览器打开开发者模式的三种方法

    1.谷歌浏览器打开开发者模式的三种方法 直接按"F12":通过点击右上角的菜单来打开:Ctrl+Shift+I 2.火狐浏览器打开开发者模式的三种方法 直接按"F12&q ...

  4. 2048经典版震撼来袭,多种游戏模式,三种布局,来迎接挑战吧!

    2048经典版震撼来袭,多种游戏模式,三种布局(3*3.4*4.5*5),两种风格(厚重.灵巧),来迎接挑战吧! appstore下载地址:https://itunes.apple.com/cn/ap ...

  5. android 夜间模式 框架,Android 夜间模式的三种实现

    实现夜间模式有很多种方式,经过多次尝试,算是找到了一种性价比较高的方式. 主题方式 这是最正统的方式,但工作量巨大,因为要全局替换 xml 布局中所有硬编码的色值,将其换成主题色.然后通过换主题达到换 ...

  6. 设置word只读模式的三种方式,分别如何取消只读模式?

    word文件可以设置只读模式,但是设置只读模式的方法不止有一种,今天和大家分享三种方式: 方式一: 这种只读模式仅起到提示功能,只是在打开文件时提示他人作者希望以只读方式打开,但是打开文件之后,我们还 ...

  7. JAVA设计模式之工厂模式(三种工厂模式)

    1.工厂模式可以分为三类: 简单工厂模式(Simple Factory) 工厂方法模式(Factory Method) 抽象工厂模式(Abstract Factory) 简单工厂其实不是一个标准的的设 ...

  8. 生产者-消费者模式的三种实现方式

    2.生产者-消费者模式的三种实现方式 1.背景                                                                    生产者生产数据到缓 ...

  9. Android中夜间模式的三种实现方式

    参考:https://www.jianshu.com/p/f3aaed57fa15 在本篇文章中给出了三种实现日间/夜间模式切换的方案: 使用 setTheme 的方法让 Activity 重新设置主 ...

最新文章

  1. 设计模式之状态模块加观察者模式
  2. android stadio open recent 在同一窗口打开
  3. 给asterisk写app供CLI调用
  4. testNG入门详解
  5. LeetCode 1066. 校园自行车分配 II(状态压缩DP)
  6. 机器学习笔记(十二)——马尔科夫模型
  7. 谷歌测试工程师分享前端性能监控利器Performance
  8. CentOS6.7 mysql5.6.33修改数据文件位置
  9. 不要用面向对象编程分散新手程序员的注意力
  10. 解决edge浏览器中idm插件不能自动捕捉下载链接的问题
  11. 人物画像及“七步人物角色法”
  12. 平均查找长度 (ASL)
  13. 南通大学java期末_南通大学生学Java,掌握这20%知识点至关重要!
  14. POJ 1417 True Liars(带权并查集+DP)
  15. oracle rollup 合计,oracle中关于分组合计函数rollup使用
  16. matlab求解erfc方程
  17. 高数 | 旋转体体积的一般公式
  18. chrom调试技巧大全,史上最全
  19. 使用JFlash读STM23 Flash 失败 经验分享
  20. AppUploader教程:如何使用该工具制作Apple证书

热门文章

  1. 庆大学校计算机系,张丽霞(加州大学洛杉矶分校计算机系教授)_百度百科
  2. Java项目课程06:系统实现-数据库
  3. 安卓学习笔记30:解析XML与JSON
  4. JDBC连接MySQL数据库:建立SSL连接出现警告信息
  5. 【BZOJ3555】企鹅QQ,第一次正确的使用哈希A题
  6. 【codevs2333】【BZOJ2002】弹飞绵羊,第一次的LCT
  7. 18.外部相机校准——介绍,几何相机校正,自由度 测验,刚体变换,符号_1
  8. php教程水印,PHP教程之ImageTTFText函数实现图像加文字水印的详细资料说明
  9. 【英语学习】【WOTD】shard 释义/词源/示例
  10. Pentium II Pentium III架构/微架构/流水线 (3) - P6执行核详解 (指令时延吞吐量,执行单元/发射口)