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 相关文章推荐
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 PHP
PHP版自动生成文章摘要
Jul 23 PHP
使用openssl实现rsa非对称加密算法示例
Jan 24 PHP
php截取指定2个字符之间字符串的方法
Apr 15 PHP
PHP mysql事务问题实例分析
Jan 18 PHP
php封装的验证码工具类完整实例
Oct 19 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
PHP实现的策略模式简单示例
Aug 25 PHP
php读取本地json文件的实例
Mar 07 PHP
PHP hebrev()函数用法讲解
Feb 21 PHP
Laravel定时任务的每秒执行代码
Oct 22 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
Apr 13 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发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
PHP数据过滤的方法
2013/10/30 PHP
php中filter_input函数用法分析
2014/11/15 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
PHP编写RESTful接口
2016/02/23 PHP
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
2019/10/22 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
竞争上岗实施方案
2014/03/21 职场文书
纪检监察建议书
2014/05/19 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
法学专业求职信范文
2015/03/19 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python
详解Python内置模块Collections
2022/03/22 Python