【设计模式】注册树模式

来源:互联网 发布:java 项目的根目录 编辑:程序博客网 时间:2024/05/16 18:40

注册树模式也叫作注册模式或者注册器模式,它的定位可能和“简单工厂”差不多,都是一种简化的,实用的技巧,但都不算在真正的的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种设计模式的正式成员,但是学习一下也不会话费我们太多时间的,毕竟多看看还好有些好处嘛!!!

原创粉丝点击