PHP经典设计模式 单例模式 工厂模式 注册树 对象池

  • 1,653
<?php
/**
 * 单例模式
 */


class Site{
  public $siteName;
  protected static $ins = null;
  private function __construct($siteName){
    $this->siteName = $siteName;
  }
  static public function getInstance($siteName = '筋斗云网络'){
    if(!self::$ins instanceof self){
      self::$ins = new self($siteName);
    }
    return self::$ins;
  }
}



/**
 * 工厂模式
 */
class Factory{
  public static function create(){
    return Site::getInstance('www.baidu.com');
  }
}

/**
 * 注册树 对象池
 * set 把单一实例挂到树上
 * get 从树上取下对象
 * _unset 销毁
 */
class register{
  //创建一个树
  protected static $objects = [];
  static public function set($alias,$obj){
    return self::$objects[$alias] = $obj;
  }
  //获取对象
  static public function get($alias){
    return self::$objects[$alias];
  }
  //对象销毁
  static public function _unset($alias){
    unset(self::$objects[$alias]);
  }
}


register::set('site',Factory::create());
$obj = register::get('site');
var_dump($obj);
echo $obj->siteName;
 ?>

weinxin
我的微信
这是我的微信扫一扫
开拓者博主
  • 本文由 发表于 2020年1月5日09:21:09
  • 转载请务必保留本文链接:https://www.150643.com/533.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:1   其中:访客  1   博主  0
    • naty naty 3

      提供拼多多发空包 京东单号有底单、内网www.88danhw.com