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

      Singleton(单例模式):单例模式是最常见的模式之一,在Web应用的开发中,常常用于允许在运行时为某个特定的类创建仅有一个可访问的实例。

      

    <?php
    class Singleton{
        //私有属性,用于保存实例
        private static $instance;
        //构造方法私有化,防止外部创建实例
        private function __construct(){}
        //公有属性,用于测试
        public $a;
        //公有方法,用于获取实例
        public static function getInstance(){
            //判断实例有无创建,没有的话创建实例并返回,有的话直接返回
            if(!(self::$instance instanceof self)){
                self::$instance = new self();
            }
            return self::$instance;
        }
        //克隆方法私有化,防止复制实例
        private function __clone(){}
    
    }

    测试:

    首先创建两个实例:

    $first = Singleton::getInstance();
    $second = Singleton::getInstance();

    给第一个实例中的$a属性赋值,并打印两个实例

    $first->a = "zs";
    echo "<pre>";
    print_r($first);
    print_r($second);

    打印结果为:

    给第二个赋值,并打印:

    $first->a = "zs";
    $second->a = "ls";
    echo "<pre>";
    print_r($first);
    print_r($second);

      PHP的单例模式相对Java比较简单,Java只一个单例模式就有好几种写法,如想了解请自行百度 :)

  • 相关阅读:
    python之openpyxl模块
    jquery实现轮播图
    Css进阶练习(实现抽屉网样式布局)
    python之UnittTest模块
    zkClient的使用
    Watcher、ZK状态、事件类型 ,权限
    java 操作zookeeper
    Zookeeper简介
    RocketMq顺序消费
    RocketMq --consumer自动实现负载均衡
  • 原文地址:https://www.cnblogs.com/lxhyty/p/11230723.html
Copyright © 2011-2022 走看看