【设计模式】注册树模式

注册树模式也叫作注册模式或者注册器模式,它的定位可能和“简单工厂”差不多,都是一种简化的,实用的技巧,但都不算在真正的的23种设计模式之中。


假如要更形象的理解注册树模式的话,就可以把它看成一颗长满水果的树,如果你向这棵注册树上添加一个对象,那么这个树上就会长出一个水果。这个水果在你想要它的时候随时可以拿到它,在你以后都不会碰它的时候可以除去它。【$objects=数 、 set()=长水果 、 get()=拿到水果 、 _unset()=去除水果】


注册树模式的难易程度应该是和单例模式相差不多,至于注册树模式的好处和作用,有好人都说过了这里引用一下别人的话。


引用:首先,单例模式创建唯一对象的过程本身还有一种判断,即判断对象是否存在。存在则返回对象,不存在则创建对象并返 回。 每次创建实例对象都要存在这么一层判断。 工厂模式更多考虑的是扩展维护的问题。 总的来说,单例模式和工厂模式可以 产生更加合理的对象。怎么方便调用这些对象呢?而且在项目内如此建立的对象好像散兵游勇一样,不便统筹管理安排啊。因 而,注册树模式应运而生。不管你是通过单例模式还是工厂模式还是二者结合生成的对象,都统统给我“插到”注册树上。我用某 个对象的时候,直接从注册树上取一下就好。这和我们使用全局变量一样的方便实


注册树模式的实现代码也十分简单,下面给大家看一下代码:

class Register{
    protected static $objects;
    public static function set($alias,$object){
        self::$objects[$alias]=$object;
    }
    public static function get($alias){
        return self::$objects[$alias];
    }
    public static function _unset($alias){
        unset(self::$objects[$alias]);
    }
}


虽然不算23种设计模式的正式成员,但是学习一下也不会话费我们太多时间的,毕竟多看看还好有些好处嘛!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值