zoukankan      html  css  js  c++  java
  • php设计模式——单例模式

      学习php这么久,虽然设计模式遇到不少,但是都没有深究,最近有时间准备研究下php的设计模式,我们就从“单例模式”开始。

      单例模式,顾名思义只有一个实例。单例模式确保某一个类只有一个实例,它不会创建实例副本,而是利用自身的方法自行实例化。首先我们看一个例子:

    class OpenStack{
        private static $instance = null; //注意一定要是静态私有变量private function __construct(){ //构造函数一定为私有,否则外部可以直接实例化该类
    
        }
    
        public static function getInstance(){ //该函数应为公有,保证外部可以直接调用,实例化本身;内部应判断该类实例是否存在,否则生成该实例
            if(self::$instance == null){
                self::$instance = new self();
            }
            return self::$instance;
        }
    }

      在这里我们可以看到,由于该OpenStack类的构造函数是私有的,所以这个类并不能在外部直接实例化,只能通过getInstance()这个共有的方法来操作。

      在该方法的内部,我们首先要判断$instance是否存在,不存在的话就实例化该类本身,赋给$instance。否则就直接返回$instance,这样就能保证该应用中只存在该类的一个实例,避免了多次new OpenStack()产生的资源开销。

      

  • 相关阅读:
    数据结构(java语言描述)顺序栈的使用(两个大数相加)
    DB2 Sql性能查看与优化
    spring默认为单例模式
    Java map的匿名类的初始化
    使用nohup后台执行ftp传输命令
    停止一个java的线程执行
    静态类
    XML语法随记
    Crontab有关
    string转Date转回String(JAVA)
  • 原文地址:https://www.cnblogs.com/liujiaq/p/6137705.html
Copyright © 2011-2022 走看看