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 array_slice函数的使用以及参数详解
Aug 30 PHP
php中使用explode查找某个字符是否存在的方法
Jul 12 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
thinkphp的dump函数无输出实例代码
Nov 15 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
PHP文件与目录操作示例
Dec 24 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 PHP
php支付宝APP支付功能
Jul 29 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
处理单名多值表单的详解
2013/06/08 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
php程序内部post数据的方法
2015/03/31 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
使用Python绘制图表大全总结
2017/02/11 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
python基于递归解决背包问题详解
2019/07/03 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
python -v 报错问题的解决方法
2020/09/15 Python
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
网络优化专员求职信
2014/05/04 职场文书
药剂专业自荐书
2014/06/20 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
房产协议书范本2014
2014/09/30 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
毕业赠语大全
2015/06/23 职场文书
中学团支部工作总结
2015/08/13 职场文书
Pandas数据类型之category的用法
2021/06/28 Python