本文章來給大家介紹php入門教程之工廠模式哦,工廠模式概念:實例化對象,用工廠方法替代new操作,有需要了解學習的朋友可參考.
工廠模式實例代碼:
<?php //首先定義什么是人類 interface Human { //人是愉快的,會笑的 public function laugh(); //人類還會哭,代表痛苦 public function cry(); //人類會說話 public function talk(); } //然后定義具體的人種 class YellowHuman implements Human {//黃色人種,這個翻譯的不準確,將就點吧 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 { //定一個烤箱,泥巴塞進去,人就出來,這個太先進了 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(); //女媧第二次造人,火候加足點,然后又出了個次品,黑人 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(); ?>
相關文章:
? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??
KB5060533? ???? ?? Windows 10? ???? ?????
4 ? ? ?
By DDD
Dune : ?? - ?? ??? ?? ?
4 ? ? ?
By Jack chen
Gmail ??? : Gmail?? ??, ??? ?? ?? ???? ?? -Minitool
1 ? ? ?
By Jack chen
KB5060999? ???? ?? Windows 11? ???? ?????
3 ? ? ?
By DDD
?? ? ??? ?? ??? : Avalon? ??
4 ? ? ?
By Jack chen

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??
Gmail ???? ??? ??? ??? ????
8518
17


?? ????
1744
16


Cakephp ????
1598
56


??? ????
1538
28


PHP ????
1397
31

