工厂模式和策略模式有两种方式去调用方法,一种是用工厂方法调用,一种是单例调取实例,那实际上这两种都有一个缺点(可能也不应该称为缺点,也可叫不足),有一个比较好的方法就是已经创建好的这个对象,直接去取这个对象,这个就是注册器模式。
顾名思义,注册器模式就是将对象注册到全局树上,那么他就可以被任意地方访问。
直接上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php class Register { static protected $objects ; //全局树 array //设置 static function set( $alias , $object ) { self:: $objects [ $alias ] = $object ; } //获得 static function get( $alias ) { return self:: $objects [ $alias ]; } //注销 static function _unset( $alias ) { unset(self:: $objects [ $alias ]); } } Register::set( 'conf' , array ( 'dbhost' => '127.0.0.1' )); print_r(Register::get( 'conf' ));<br>注册模式完成~ |