博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php设计模式之实现单例模式(singleton)
阅读量:6371 次
发布时间:2019-06-23

本文共 1183 字,大约阅读时间需要 3 分钟。

单例模式(Singleton):用于为一个类生成一个唯一的对象。

最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。

作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。

单例模式(singleton)有三个特点

1、一个类只能有一个实例
2、它必须自行创建这个实例
3、它必须自行向整个系统提供这个实例

代码示例:

/** * 单例类 * Singleton.class */class Singleton  {     /**    * 静态成品变量 保存全局实例    */    private static $_instance = NULL;         /**      * 私有化默认构造方法,保证外界无法直接实例化      */       private function __construct()        {           }           /**      * 静态工厂方法,返还此类的唯一实例      */     public static function getInstance() {      if (is_null(self::$_instance)) {       self::$_instance = new Singleton();              // 或者这样写       // self::$_instance = new self();      }           return self::$_instance;     }        /**    * 防止用户克隆实例    */     public function __clone(){      die('Clone is not allowed.' . E_USER_ERROR);     }       /**   * 测试用方法   */   public function test()   {      echo 'Singleton Test OK!';   }     }  /** * 客户端 */class Client {   /**  * Main program.  */ public static function main() {  $instance = Singleton::getInstance();  $instance->test(); }} Client::main();

测试

include "Singleton.class";$test_obj = Singleton::getInstance();$ret = $test_obj->test();

转载地址:http://ftyqa.baihongyu.com/

你可能感兴趣的文章
关于 Promise 的 9 个提示
查看>>
算法复习
查看>>
安卓中高级开发面试知识点之——缓存
查看>>
Java的初始化顺序
查看>>
js 判断回文字符串
查看>>
shields小徽章是如何生成的?以及搭建自己的shield服务器
查看>>
猫头鹰的深夜翻译:spring事务管理
查看>>
记一次使用Spring REST Docs + travis + github自动生成API接口文档的操作步骤(下)...
查看>>
1、集合 2、Iterator迭代器 3、增强for循环 4、泛型
查看>>
关于/var/run/docker.sock
查看>>
SCrapy爬虫大战京东商城
查看>>
用 JavaScript 实现链表操作 - 11 Alternating Split
查看>>
Laravel优秀扩展包整理
查看>>
日志分析之识别真假蜘蛛与处理办法
查看>>
太多脚本将会毁掉持续交付
查看>>
一地鸡毛 OR 绝地反击,2019年区块链发展指南
查看>>
卢森堡大学发布RepuCoin系统,可破解区块链51%攻击
查看>>
国内云计算厂商众生相:四大阵营十几家企业生存盘点
查看>>
细说Unicode(一) Unicode初认识
查看>>
Node.js有了新的管理者
查看>>