<?php interface Number { public function hero(); } class Number1 implements Number { public function hero() { return "一号位:矮子"; } } class Number2 implements Number { public function hero() { return "二号位:影魔"; } } class Number3 implements Number { public function hero() { return "三号位:女王"; } } class Number4 implements Number { public function hero() { return "四号位:抄袭"; } } class Number5 implements Number { public function hero() { return "五号位:冰女"; } } class Factory { public static function toYou($num) { switch($num) { case 1: return new Number1(); break; case 2: return new Number2(); break; case 3: return new Number3(); break; case 4: return new Number4(); break; case 5: return new Number5(); break; } } } //$a = Factory::toYou(1); //echo $a->hero(); // 注册树 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]); } } Register::set('hero1',Factory::toYou(1)); Register::set('hero2',Factory::toYou(2)); Register::set('hero3',Factory::toYou(3)); Register::set('hero4',Factory::toYou(4)); Register::set('hero5',Factory::toYou(5)); $hero1 = Register::get('hero1'); $hero2 = Register::get('hero2'); $hero3 = Register::get('hero3'); $hero4 = Register::get('hero4'); $hero5 = Register::get('hero5'); echo $hero1->hero(); echo $hero2->hero(); echo $hero3->hero(); echo $hero4->hero(); echo $hero5->hero();
PHP 注册树模式
猜你喜欢
转载自blog.csdn.net/dote2r/article/details/78550484
今日推荐
周排行