php建造者模式实例(PHP工厂模式、单例模式与注册树模式实例详解)
类别:编程学习 浏览量:1794
时间:2022-03-28 22:16:34 php建造者模式实例
PHP工厂模式、单例模式与注册树模式实例详解本文实例讲述了PHP工厂模式、单例模式与注册树模式。分享给大家供大家参考,具体如下:
三种基本设计模式
1、工厂模式:工厂方法或者类生成对象,而不是在代码中直接new
2、单例模式:使某个类的对象仅允许创建一个
3、注册模式:全局共享和交换对象
工厂模式:
|
<?php namespace IMooc; class Factory { static function createDatabase() { $db = new Database(); return $db ; } } |
|
$db = IMooc\Factory::createDatabase(); |
工厂模式的好处是,避免Database这个类,在很多个php文件都进行new操作,如果Database这个类发生了一些变更(修改了名字或者参数),那这时候如果不工厂模就需要修改多出了,使用工厂模式,就只需要修改工厂方法即可。
单例模式:
|
<?php namespace IMooc; class Database { protected $db ; private function __construct() { } // 获取数据库操作实例 static function getInstance() { if (self:: $db ){ return self:: $db ; } else { self:: $db = new self(); return self:: $db ; } } } // 无论调用多少次,只会创建一个实例 $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance(); $db = IMooc\Database::getInstance(); |
注册树模式:
|
<?php namespace IMooc; class Register { protected static $objects ; static function set( $alias , $object ) { self:: $objects [ $alias ] = $object ; } static function get( $name ) { return self:: $objects [ $name ]; } static function _unset( $alias ) { unset(self:: $objects [ $alias ]); } } $db = \IMooc\Register::get( 'db1' ); |
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/github_26672553/article/details/53886889
您可能感兴趣
- dedecms手机独立域名(DedeCMS Wap.php 绑定域名的解决办法)
- 如何在php内加密解密(PHP中散列密码的安全性分析)
- php支付接口(PHP实现的支付宝支付功能示例)
- thinkphp支付宝支付(thinkPHP和onethink微信支付插件分享)
- nginx如何配置php项目(Nginx服务器究竟是怎么执行PHP项目)
- php 经典模式(php设计模式之装饰模式应用案例详解)
- phpob函数使用方法(php中isset与empty函数的困惑与用法分析)
- php与xml文件(PHP读取XML文件的方法实例总结DOMDocument及simplexml方法)
- thinkphp5.1 执行流程(Thinkphp5.0 框架的请求方式与响应方式分析)
- php字符串教程学习(php学习笔记之字符串常见操作总结)
- phpstorm代码模板(phpStorm+XDebug+chrome 配置详解)
- php根据名称规则判断文件是否存在(PHP中上传文件打印错误错误类型分析)
- php验证码思路(PHP实现字母数字混合验证码功能)
- ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解(ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解)
- php中数组使用技巧(php常用经典函数集锦数组、字符串、栈、队列、排序等)
- php可以一次下载几个文件(php实现大文件断点续传下载实例代码)
- 小敏家 剧情离谱一锅乱炖,但他们俩绝对是这部剧的一大 亮点(剧情离谱一锅乱炖)
- 《倚天屠龙记》再遭翻拍,关晓彤主演赵敏,蒋劲夫演张无忌,你怎么看(倚天屠龙记再遭翻拍)
- 吴启华与曾舜晞两代张无忌同框,戏里经典的他却没活出原著的潇洒(吴启华与曾舜晞两代张无忌同框)
- 经常发这三种 朋友圈 的人,要迅速屏蔽(经常发这三种朋友圈)
- 有种尴尬叫朋友圈忘屏蔽,大学生上演社死现场,父母亲自下场吐槽(有种尴尬叫朋友圈忘屏蔽)
- 朋友圈屏蔽你的人,可以直接看淡了(朋友圈屏蔽你的人)
热门推荐
- sql server信息管理案例(利用SQL Server数据库邮件服务实现监控和预警)
- 将匿名对象作为Model数据传给View
- ubuntu内核升级指定版本(Ubuntu12.04建立内核树实现过程详解)
- vue查询条件生成工具(vue实现四级导航及验证码的方法实例)
- nginx反向代理流程详解(本地通过nginx配置反向代理的全过程记录)
- SQL中Exists的用法
- 查看docker日志大小(docker logs-查看docker容器日志的实现)
- 怎么用docker部署springboot项目(Spring Boot使用Docker分层打包的设置方法)
- sqlserver 比较日期(解析SQL Server中SQL日期转换出错的原因)
- ftp服务器可以用吗(FTP服务器存在的风险你知道吗?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9