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
您可能感兴趣
- phpweb添加自定义模板(php静态化页面 htaccess写法详解htaccess怎么写?)
- php 创建定时任务(PHP扩展Swoole实现实时异步任务队列示例)
- php如何发邮件(PHP示例演示发送邮件给某个邮箱)
- thinkphp微信开发教程(微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解)
- php教程字符串类型进阶技术教程(PHP中有关长整数的一些操作教程)
- dedecms兼容模式(DedeCMS 验证码不正确的解决方法php配置问题)
- php可忽略大小写的模式符(PHP基于timestamp和nonce实现的防止重放攻击方案分析)
- dedecms验证码识别(dedecms 软件下载频道防盗链php代码)
- phpstudy服务器怎么设置(PHPStudy打开网页很慢的原因及解决方案)
- php无法读取txt文件(php写入txt乱码的解决方法)
- thinkphp框架实例(ThinkPHP框架整合微信支付之JSAPI模式图文详解)
- thinkphp怎么整合微信支付(ThinkPHP框架实现的微信支付接口开发完整示例)
- php中如何使用缓存(PHP使用OB缓存实现静态化功能示例)
- php优势和缺点(PHP的介绍以及优势详细分析)
- phpstudy创建本地服务器(phpstudy linux小皮面板防火墙的开启与关闭)
- dede模板手机端显示设置(DEDE模板中如何运行php脚本和变量在需要操作数据库字段时)
- 七夕取消了,牛郎织女没做核酸七夕已经取消(牛郎织女没做核酸七夕已经取消)
- 网友抵制 多地取消 夏日祭 为何惹众怒(网友抵制多地取消)
- 兄弟萌,今年的七夕又取消了 思考 思考(今年的七夕又取消了)
- 七夕取消是什么梗(七夕取消是什么梗)
- 这竟然是捏出来的 20种橡皮泥玩法让你轻松hold住魔娃(这竟然是捏出来的)
- 自制橡皮泥(自制橡皮泥)
热门推荐
- linux什么时候使用信号(浅谈Linux信号机制)
- linux中dir命令怎么用(Linux sar命令使用方法及代码实例解析)
- css瀑布流布局
- nginx 怎么搭建web服务器(Linux+Nginx+Php架设高性能WEB服务器)
- nginx负载均衡5种方法(Nginx如何配置负载均衡)
- sqlserver游标使用场景(解析SQL Server聚焦移除Bookmark Lookup、RID Lookup、Key Lookup)
- python 摄像头运用(使用Python控制摄像头拍照并发邮件)
- uniapp使用vue写页面(分析uniapp入门之nvue爬坑记)
- python语法规则讲解(计算机二级python学习教程2 python语言基本语法元素)
- numpy学习(numpy基础教程之np.linalg)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9