<?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 注册树模式
最新推荐文章于 2024-04-24 14:54:57 发布