php简单实现单态设计模式的方法分析


Posted in PHP onJuly 28, 2017

本文实例讲述了php简单实现单态设计模式的方法。分享给大家供大家参考,具体如下:

单态设计模式通常包含以下三点:

· 一个私有的 构造方法;(确保用户无法通过创建对象对其进行实例化)
· 一个公有的 静态的 方法;(负责对其本身进行实例化)
· 一个私有的 静态的 属性;(用于保存仅有的一个实例化对象)

<?php
class singleTon{
    //用于保存仅有的一个实例化对象
    private static $Instance=NULL;
    //构造方法 使用private 封装后 则只能在类的内部使用new去创建对象
    private function __construct(){};
    //只有通过这个方法才能返回本类中的对象,该方法是静态方法 用类名调用
    public static getInstance(){
       if(self::$Instance instanceof self){ //如果本类中的$Instance为空,说明还没有被实例化过
         self::$Instance=new singleTon(); //实例化本对象
       }
       return self::$Instance;
    }
}
$instance=singleTon::getInstance(); //只能使用静态方法getInstance()去获取singleTon类的对象
?>

所谓的单态设计模式就是一个类只能产生/创建唯一一个对象

要编写单态设计模式,就必须让一个类只能实例化一个对象,而要想让一个类只能实例化一个对象,就要先让一个类不能实例化对象

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
封装一个PDO数据库操作类代码
Sep 09 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
PHP连接Access数据库的方法小结
Jun 20 PHP
php打印输出棋盘的实现方法
Dec 23 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
Feb 15 PHP
功能强大的php文件上传类
Aug 29 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
PHP使用ActiveMQ实例
Feb 05 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 #PHP
使用php自动备份数据库表的实现方法
Jul 28 #PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 #PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 #PHP
laravel 5.4中实现无限级分类的方法示例
Jul 27 #PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
Jul 27 #PHP
PHP实现的Redis多库选择功能单例类
Jul 27 #PHP
You might like
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
PDO实现学生管理系统
2020/03/21 PHP
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
第一个Vue插件从封装到发布
2017/11/22 Javascript
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
python实现windows下文件备份脚本
2018/05/27 Python
Python常用的json标准库
2019/02/19 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
Python自动创建Excel并获取内容
2020/09/16 Python
实习生自我鉴定
2013/12/12 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
《刷子李》教学反思
2016/02/20 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle