####普通工厂模式 interface person{ function talk();###说话 function skin();###肤色 } ###中国人特征 class chiness implements person{ public function talk(){ echo '中国话'; } public function skin(){ echo '黄色皮肤'; } } ###美国人特征 class american implements person{ public function talk(){ echo 'englis'; } public function skin(){ echo 'white'; } }
####提问者 abstract class quiz{ abstract function handUp(); public function getAnser(){ return $this->handUp(); } } ####美国代表 class usAmbassador extends quiz{ public function handUp(){ return new american(); } } ####中国代表 class chinaAmbassador extends quiz{ public function handUp(){ return new chiness(); } }
###请美国人回答 $us_american = new usAmbassador(); $obj = $us_american->getAnser(); $obj->talk();###说什么语言 $obj->skin();###什么肤色
###请中国人回答说 $china = new chinaAmbassador(); $obj = $china->getAnser(); $obj->talk();###说的什么语言 $obj->skin();###什么肤色