本文章來給大家介紹php入門教程之工廠模式哦,工廠模式概念:實(shí)例化對象,用工廠方法替代new操作,有需要了解學(xué)習(xí)的朋友可參考.
工廠模式實(shí)例代碼:
- //首先定義什么是人類
- interface Human {
- //人是愉快的,會笑的
- public function laugh();
- //人類還會哭,代表痛苦
- public function cry();
- //人類會說話
- public function talk();
- }
- //然后定義具體的人種
- class YellowHuman implements Human {//黃色人種,這個翻譯的不準(zhǔn)確,將就點(diǎn)吧
- function cry() { var_dump( "黃色人種會哭");}
- function laugh() {var_dump( "黃色人種會大笑,幸福呀!");}
- function talk() {var_dump( "黃色人種會說話,一般說的都是雙字節(jié)"); }
- }
- class WhiteHuman implements Human { //白色人種
- public function cry() {var_dump("白色人種會哭");}
- public function laugh() {var_dump("白色人種會大笑,侵略的笑聲"); }
- public function talk() {var_dump("白色人種會說話,一般都是但是單字節(jié)!"); }
- }
- class BlackHuman implements Human { //黑色人種
- public function cry() {var_dump("黑色人種會哭");}
- public function laugh() {var_dump("黑色人種會大笑,侵略的笑聲"); }
- public function talk() {var_dump("黑色人種會說話,一般都是但是單字節(jié)!"); }
- }
- //人種也定義完畢了,那我們把八卦爐定義出來:
- class HumanFactory {
- //定一個烤箱,泥巴塞進(jìn)去,人就出來,這個太先進(jìn)了
- public static function createHuman( $c ){
- if ($c instanceof Human ) {//判斷是否繼承自Human
- return $c;
- }else {
- var_dump("必須跟HuMan有一腿");
- }
- }
- }
- var_dump("------------造出的第一批人是這樣的:白人-----------------");
- $whiteHuman = HumanFactory::createHuman( new WhiteHuman());
- $whiteHuman->cry();
- $whiteHuman->laugh();
- $whiteHuman->talk();
- //女媧第二次造人,火候加足點(diǎn),然后又出了個次品,黑人
- var_dump("nn------------造出的第二批人是這樣的:黑人-----------------");
- $blackHuman = HumanFactory::createHuman(new BlackHuman());
- $blackHuman->cry();
- $blackHuman->laugh();
- $blackHuman->talk();
- //第三批人了,這次火候掌握的正好,黃色人種(不寫黃人,免得引起歧義),備注:RB人不屬于此列
- var_dump("nn------------造出的第三批人是這樣的:黃色人種-----------------");
- $yellowHuman = HumanFactory::createHuman(new YellowHuman());
- $yellowHuman->cry();
- $yellowHuman->laugh();
- $yellowHuman->talk();
新聞熱點(diǎn)
疑難解答