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 相关文章推荐
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
php实现多张图片上传加水印技巧
Apr 18 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
Apr 26 PHP
PHP header()函数常用方法总结
Apr 11 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
php使用GD实现颜色渐变实例
Jun 02 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 PHP
PHP基于cookie实现统计在线人数功能示例
Jan 16 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
php设计模式 Proxy (代理模式)
2011/06/26 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
php命令行用法入门实例教程
2014/10/27 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
详解Golang 与python中的字符串反转
2017/07/21 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
python复制文件到指定目录的实例
2018/04/27 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
保安2014年终工作总结
2014/12/06 职场文书
责任书格式
2015/01/29 职场文书
python+opencv实现视频抽帧示例代码
2021/06/11 Python
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA