博主信息
博文 35
粉丝 0
评论 0
访问量 33867
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
对象树详解
小的博客
原创
1361人浏览过
<?php 
 header('Content-Type:text/html;charset=utf-8'); 
 //单例模式 
   class Site{  
     private static $instance=null;//本类的静态实例  
     private $site_Name='';//私有属性 
     private function __construct($siteName){//构造方法私有化防止外部实例化        
             $this->site_Name=$siteName;     
     }  
     //获取本类的唯一实例  
     public static function getInstance($siteName=''){  
      if(!self::$instance instanceof self){   
       return self::$instance=new self($siteName);  
       }  
        return self::$instance;  
     }  
    //克隆方法私有化禁用外部克隆  
   private function __clone(){  
      } 
   } 
   //工厂模式来生成本类的单一实例 
   class Factory{ 
      public static function create($siteName=''){ 
        return Site::getInstance($siteName); 
     } 
   } 
   /*对象注册树 
   * 1,注册 set();把对象挂在树上 
   * 2,获取 get();把对象从树上取下来 
   * 3,注销 _unset();把对象吃掉 
   */ 
   class Register{  
    //创建对象池,数组  
    protected static $objects=[];  
    //生成对象并上树  
    public static function set($alias,$objects){   
        self::$objects[$alias]=$objects;  
      } 
       //从树上面取下对象  
       public static function get($alias){   
       return self::$objects[$alias];  
      }  
      //把树上面的对象吃掉 
       public static function _unset($alias){  
        unset(self::$objects[$alias]);  
      } 
      } 
      echo '<pre>'; 
      // Register::set('php中文网','www.php.cn/php2/');
       //echo  Register::get('php中文网'); 
       //Register::_unset('php中文网');
        //将对象放入池里  
        Register::set('objtree',Factory::create('www.php.cn')); 
         Register::set('string','PHP程序员工具箱'); 
         //从对象池中去下一个对象
         echo '<hr>'; print_r( $obj2=Register::get('string')); 
         Register::_unset('objtree'); //注销这个对象即把这个对象吃掉
         //访问一下这个对象
           print_r(  $obj=Register::get('objtree'));//注销这个对象后再次访问就会报错  
 
?>

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学