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

     
    
    <?php
    
    /**
    * @desc 单例模式
    * 目的:防止过多的new对象和clone对象,没有对象的时候new对象并缓存,始终保持都是同一个对象实例
    * 特点:php的单例是进程中的单例,而不像java属于内存中的单例
    * **/
    
    class single{
    protected static $ins = null;//声明一个静态变量,用来存储类的实例
    private $name;//声明一个私有的实例变量
    /**
    * 私有化构造方法,防止不断的创建对象
    * **/
    private function __construct(){
    
    }
    
    public static function getIns(){
    if(self::$ins===null){
    self::$ins = new self();
    }
    return self::$ins;
    }
    
    public function setName($name){
    $this->name = $name;
    }
    
    public function getName(){
    return $this->name;
    }    
    
    }
    
    $single1 = single::getIns();
    $single2 = single::getIns();
    $single1->setName('hello world!');
    $single2->setName('hello php!');
    echo $single1->getName();//输出结果:hello php!
    echo $single2->getName();//输出结果:hello php!
    
    
    /***
    * 分析:输出的结果都是hello php!
    * 采用了单例模式对象$single1与$single2是等价的,因此对象$single1与$single2都在设置类的变量时指向都是一致的,变量值取对象设置的最新的一个值
    * **/
    
     
  • 相关阅读:
    Leetcode 第 210 场周赛
    Leetcode 834. 树中距离之和
    Leetcode 第36场双周赛
    力扣 第 208 场周赛
    cf 665 DMaximum Distributed Tree
    Codeforces Round #672 (Div. 2) A~D
    Educational Codeforces Round 95 (Rated for Div. 2) A~D
    CCF CSP 201612-3 权限查询
    Codeforces Round #669 (Div. 2) A~C
    201703-4 地铁修建
  • 原文地址:https://www.cnblogs.com/lisqiong/p/6552815.html
Copyright © 2011-2022 走看看