美文网首页
注册树模式

注册树模式

作者: 零一间 | 来源:发表于2017-08-09 08:49 被阅读45次
    <?php
    /**
     * Class Register 注册树类
     * 使用注册树模式,我们创建对象的时候,交给我们的容器去做,使得,整个系统代码的耦合性大大降低,维护方便,项目结构也更加清晰。
     */
    header('Content-Type:text/html;charset=utf-8');
    
    class Register
    {
        // 树的枝干-用于储存树上的果实(实例)
        public static $objects;
    
        /**
         * 将实例插入注册树中
         *
         * @param $alias 对象别名-注册树中的名称
         * @param $object 对象实例
         */
        public static function set($alias, $object)
        {
            self::$objects[$alias] = $object;
        }
    
        /**
         * 从注册树中读取实例
         *
         * @param $alias 对象别名-注册树中的名称
         *
         * @return mixed 返回的对象实例
         */
        public static function get($alias)
        {
            if (isset(self::$objects[$alias])) {
                return self::$objects[$alias];
            } else {
                echo '您要找的对象实例不存在哦<br>';
            }
    
        }
    
        /**
         * 销毁注册树中的实例
         *
         * @param $alias 对象别名-注册树中的名称
         */
        public static function _unset($alias)
        {
            unset(self::$objects[$alias]);
        }
    }
    
    
    
    
    /**
     * Class demo 演示类
     */
    class demo
    {
        /*
         * 测试方法
         */
        public function test()
        {
            echo '看这里看这里<br><br>';
        }
    }
    
    // 实例化测试类,获取对象实例
    $demo = new demo();
    // 注册到树上
    $tree = Register::set('de', $demo);
    // 取出来
    $de_true = Register::get('de');
    // 测试
    $de_true->test();
    // 销毁
    Register::_unset('de');
    

    相关文章

      网友评论

          本文标题:注册树模式

          本文链接:https://www.haomeiwen.com/subject/jhlfrxtx.html