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+DBM的同学录程序(1)
Oct 09 PHP
php中的常用魔术方法总结
Aug 02 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
php日历制作代码分享
Jan 20 PHP
thinkphp学习笔记之多表查询
Jul 28 PHP
php实现无限级分类
Dec 24 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
PHP date函数常用时间处理方法
May 11 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
php array_values 返回数组的值实例详解
Nov 17 PHP
PHP实现微信提现功能(微信商城)
Nov 21 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
Mar 09 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
PHP Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
php mssql 时间格式问题
2009/01/13 PHP
php读取纯真ip数据库使用示例
2014/01/26 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
javascript new fun的执行过程
2010/08/05 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
Python计算回文数的方法
2015/03/11 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
新闻发布会主持词
2014/03/28 职场文书
先进单位事迹材料
2014/12/25 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
教师创先争优承诺书
2015/04/27 职场文书
邓小平文选读书笔记
2015/06/29 职场文书