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 相关文章推荐
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
mysql,mysqli,PDO的各自不同介绍
Sep 19 PHP
php中长文章分页显示实现代码
Sep 29 PHP
php编写简单的文章发布程序
Jun 18 PHP
PHP打印输出函数汇总
Aug 28 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
php版微信小店调用api示例代码
Nov 12 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
PHP的cookie与session原理及用法详解
Sep 27 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 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实现批量查询清除一句话后门的代码
2008/01/20 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
用javascript实现画板的代码
2007/09/05 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
react-native 封装选择弹出框示例(试用ios&amp;android)
2017/07/11 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
使用Python操作excel文件的实例代码
2017/10/15 Python
python实现的Iou与Giou代码
2020/01/18 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
奠基仪式策划方案
2014/05/15 职场文书
服装设计专业求职信
2014/06/16 职场文书
毕业实习计划书
2015/01/16 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
标枪加油稿
2015/07/22 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server