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 UTF8编码内的繁简转换类
Jul 20 PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 PHP
PHP框架Laravel的小技巧两则
Feb 10 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 PHP
php+mysql实现无限级分类
Nov 11 PHP
PHP按指定键值对二维数组进行排序的方法
Dec 22 PHP
php快速排序原理与实现方法分析
May 26 PHP
PHP简单日历实现方法
Jul 20 PHP
php学习笔记之mb_strstr的基本使用
Feb 03 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 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
BBS(php &amp; mysql)完整版(三)
2006/10/09 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
php实现水仙花数示例分享
2014/04/03 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
Python itertools模块详解
2015/05/09 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
python环境下安装opencv库的方法
2020/03/05 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
英国床垫在线:Mattress Online
2016/12/07 全球购物
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
村干部培训方案
2014/05/02 职场文书
经理聘任证明
2015/03/02 职场文书
2016公司年会通知范文
2015/04/25 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
Python实现拼音转换
2021/06/07 Python
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript