php注册树模式,PHP三种基本设计模式(工厂模式、单例模式、注册树模式)
一、工厂设计模式
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三种基本设计模式(工厂模式、单例模式、注册树模式)相关推荐
- 慕课网----大话PHP设计模式 三(三种基本设计模式-工厂模式,单例模式,注册树模式)
1)工厂模式: 工厂方法或者类生成对象,而不是代码中直接new 多用来生成对象 好处.如果很多个文件都使用了这个类的话,如果修改需要去每个文件下都进行修改,而使用工厂模式的话,则只用在类里面修改创建方 ...
- B2B2C模式的三种核心逻辑
B2B2C模式的出发点,是服务原有B2C模式,促进原有的B端和C端完成更加便利.更加科学的.更加顺畅平滑的交易,然后慢慢地,形成平台式的应用场景服务,将B端和C端都变成平台的客户,从而形成一个新的产业 ...
- 火狐/谷歌浏览器打开开发者模式的三种方法
1.谷歌浏览器打开开发者模式的三种方法 直接按"F12":通过点击右上角的菜单来打开:Ctrl+Shift+I 2.火狐浏览器打开开发者模式的三种方法 直接按"F12&q ...
- 2048经典版震撼来袭,多种游戏模式,三种布局,来迎接挑战吧!
2048经典版震撼来袭,多种游戏模式,三种布局(3*3.4*4.5*5),两种风格(厚重.灵巧),来迎接挑战吧! appstore下载地址:https://itunes.apple.com/cn/ap ...
- android 夜间模式 框架,Android 夜间模式的三种实现
实现夜间模式有很多种方式,经过多次尝试,算是找到了一种性价比较高的方式. 主题方式 这是最正统的方式,但工作量巨大,因为要全局替换 xml 布局中所有硬编码的色值,将其换成主题色.然后通过换主题达到换 ...
- 设置word只读模式的三种方式,分别如何取消只读模式?
word文件可以设置只读模式,但是设置只读模式的方法不止有一种,今天和大家分享三种方式: 方式一: 这种只读模式仅起到提示功能,只是在打开文件时提示他人作者希望以只读方式打开,但是打开文件之后,我们还 ...
- JAVA设计模式之工厂模式(三种工厂模式)
1.工厂模式可以分为三类: 简单工厂模式(Simple Factory) 工厂方法模式(Factory Method) 抽象工厂模式(Abstract Factory) 简单工厂其实不是一个标准的的设 ...
- 生产者-消费者模式的三种实现方式
2.生产者-消费者模式的三种实现方式 1.背景 生产者生产数据到缓 ...
- Android中夜间模式的三种实现方式
参考:https://www.jianshu.com/p/f3aaed57fa15 在本篇文章中给出了三种实现日间/夜间模式切换的方案: 使用 setTheme 的方法让 Activity 重新设置主 ...
最新文章
- 设计模式之状态模块加观察者模式
- android stadio open recent 在同一窗口打开
- 给asterisk写app供CLI调用
- testNG入门详解
- LeetCode 1066. 校园自行车分配 II(状态压缩DP)
- 机器学习笔记(十二)——马尔科夫模型
- 谷歌测试工程师分享前端性能监控利器Performance
- CentOS6.7 mysql5.6.33修改数据文件位置
- 不要用面向对象编程分散新手程序员的注意力
- 解决edge浏览器中idm插件不能自动捕捉下载链接的问题
- 人物画像及“七步人物角色法”
- 平均查找长度 (ASL)
- 南通大学java期末_南通大学生学Java,掌握这20%知识点至关重要!
- POJ 1417 True Liars(带权并查集+DP)
- oracle rollup 合计,oracle中关于分组合计函数rollup使用
- matlab求解erfc方程
- 高数 | 旋转体体积的一般公式
- chrom调试技巧大全,史上最全
- 使用JFlash读STM23 Flash 失败 经验分享
- AppUploader教程:如何使用该工具制作Apple证书
热门文章
- 庆大学校计算机系,张丽霞(加州大学洛杉矶分校计算机系教授)_百度百科
- Java项目课程06:系统实现-数据库
- 安卓学习笔记30:解析XML与JSON
- JDBC连接MySQL数据库:建立SSL连接出现警告信息
- 【BZOJ3555】企鹅QQ,第一次正确的使用哈希A题
- 【codevs2333】【BZOJ2002】弹飞绵羊,第一次的LCT
- 18.外部相机校准——介绍,几何相机校正,自由度 测验,刚体变换,符号_1
- php教程水印,PHP教程之ImageTTFText函数实现图像加文字水印的详细资料说明
- 【英语学习】【WOTD】shard 释义/词源/示例
- Pentium II Pentium III架构/微架构/流水线 (3) - P6执行核详解 (指令时延吞吐量,执行单元/发射口)