php单态设计模式(单例模式)实例


Posted in PHP onNovember 18, 2014

单态设计模式也叫单例模式:

1.单态设计模式含义:

单态模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象存在。作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。

2.单台模式的三个关键点:

① 需要一个保存类的唯一实例的静态成员变量;
②构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义;
③必须提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一实例的一个引用 。

<?php

class DB {

    private static $obj = null;           //声明一个私有的,静态的成员属性$obj

    private function__construct() {       //私有构造方法,只能在类的内部实例化对象

        echo "连接数据库成功<br>";

    }

    public static function getInstance() {  // 通过此静态方法才能获取本类的对象

        if(is_null(self::$obj))  //如果本类中的$obj为空,说明还没有被实例化过

            self::$obj = new self();  //实例化本类对象

            return self::$obj;  //返回本类的对象

    }

    public function query($sql) {  //执行SQL语句完成对数据库的操作

        echo $sql;

    }

}

    $db = DB::getInstance();        //只能使用静态方法getInstance()去获取DB类的对象

    $db -> query("select *from user");       //访问对象中的成员

?>
PHP 相关文章推荐
坏狼的PHP学习教程之第1天
Jun 15 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
获取URL文件名后缀
Oct 24 PHP
php实现数组筛选奇数和偶数示例
Apr 11 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
PHP session会话操作技巧小结
Sep 27 PHP
PHP实现的常规正则验证helper公共类完整实例
Apr 27 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
PHP的PDO预处理语句与存储过程
Jan 27 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
Nov 18 #PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 #PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 #PHP
一个比较不错的PHP日历类分享
Nov 18 #PHP
php集成环境xampp中apache无法启动问题解决方案
Nov 18 #PHP
PHP解析目录路径的3个函数总结
Nov 18 #PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 #PHP
You might like
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
简单理解Python中的装饰器
2015/07/31 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
物业管理求职自荐信
2013/09/25 职场文书
计算机专业毕业生的自我评价
2013/11/18 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
简易版租房协议书范本
2014/10/13 职场文书
2014年体育部工作总结
2014/11/13 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
2016教师节问候语
2015/11/10 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS