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 相关文章推荐
第二节 对象模型 [2]
Oct 09 PHP
PR值查询 | PageRank 查询
Dec 20 PHP
基于python发送邮件的乱码问题的解决办法
Apr 25 PHP
浅析php变量修饰符static的使用
Jun 28 PHP
国外十大最流行的PHP框架排名
Jul 04 PHP
php用ini_get获取php.ini里变量值的方法
Mar 04 PHP
帝国CMS留言板回复后发送EMAIL通知客户
Jul 06 PHP
PHP面向对象程序设计方法实例详解
Dec 24 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
Laravel框架基于ajax实现二级联动功能示例
Jan 17 PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 PHP
基于laravel缓冲cache的用法详解
Oct 23 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 XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
Python如何为图片添加水印
2016/11/25 Python
在python中实现对list求和及求积
2018/11/14 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
大学生入党自我鉴定
2013/10/31 职场文书
音乐教育感言
2014/03/05 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
2014年财政工作总结
2014/12/10 职场文书
党员转正意见怎么写
2015/06/03 职场文书
领导视察通讯稿
2015/07/18 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技