zoukankan      html  css  js  c++  java
  • PHP设计模式 -- 注册模式

    参考文章:https://segmentfault.com/a/1190000007495855

    简介

    注册树模式又称注册模式注册器模式。注册树模式通过将对象实例注册到一棵全局的对象树上,需要的时候从对象树上采摘的模式设计方法。和果树不同的是,果子只能采摘一次,而注册树上的实例却可以无数次获取。

    使用了注册树模式后,对于实例,我们能够更好地统筹管理安排,就像使用全局变量一样的方便实用。

    示例:

    <?php
    
    /**
     * Class Register 注册树类
     */
    class Register
    {
        // 树的枝干-用于储存树上的果实(实例)
        public static $objects; // array
    
    
        /**
         * 将实例插入注册树中
         *
         * @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 '对象弄丢了';
            }
        }
    
    
        /**
         * 销毁注册树中的实例
         *
         * @param $alias 对象别名-注册树中的名称
         */
        public static function _unset($alias)
        {
            unset(self::$objects[$alias]);
        }
    }
    
    Register::set('conf', array('dbhost' => '127.0.0.1'));
    print_r(Register::get('conf'));

    结果:

  • 相关阅读:
    表的锁机制
    ABAP函数:VIEW_MAINTENANCE_CALL(维护表视图等)
    数据字典中新建表时出现黄色警告的处理
    smartforms长文本处理方式
    打印报表页码
    可以根据柜子内表取出所有的柜子信息的BAPI函数
    方法的重载、类的继承
    构造方法
    函数方法
    方法
  • 原文地址:https://www.cnblogs.com/chenhaoyu/p/9063520.html
Copyright © 2011-2022 走看看