1. 程式人生 > >抽象工廠模式 - 設計模式 - PHP版

抽象工廠模式 - 設計模式 - PHP版

ret white elf class 參考 工廠 bsp echo 抽象

 1 <?php
 2 /*
 3  * 抽象工廠模式
 4  * 
 5  * 參考:http://blog.csdn.net/zhaoxuejie/article/details/7087689
 6  * 
 7  */
 8 //抽象工廠  
 9 interface AnimalFactory {
10     public function createCat();
11     public function createDog();
12 }
13 //具體工廠  
14 class BlackAnimalFactory implements AnimalFactory {
15 function createCat() { 16 return new BlackCat(); 17 } 18 function createDog() { 19 return new BlackDog(); 20 } 21 } 22 class WhiteAnimalFactory implements AnimalFactory { 23 function createCat() { 24 return new WhiteCat(); 25 } 26 function
createDog() { 27 return new WhiteDog(); 28 } 29 } 30 //抽象產品 31 interface Cat { 32 function Voice(); 33 } 34 interface Dog { 35 function Voice(); 36 } 37 //具體產品 38 class BlackCat implements Cat { 39 function Voice() { 40 echo ‘黑貓喵喵……‘; 41 }
42 } 43 class WhiteCat implements Cat { 44 function Voice() { 45 echo ‘白貓喵喵……‘; 46 } 47 } 48 class BlackDog implements Dog { 49 function Voice() { 50 echo ‘黑狗汪汪……‘; 51 } 52 } 53 class WhiteDog implements Dog { 54 function Voice() { 55 echo ‘白狗汪汪……‘; 56 } 57 } 58 //客戶端 59 class Client { 60 public static function main() { 61 self::run(new BlackAnimalFactory()); 62 self::run(new WhiteAnimalFactory()); 63 } 64 public static function run(AnimalFactory $AnimalFactory) { 65 $cat = $AnimalFactory->createCat(); 66 $cat->Voice(); 67 $dog = $AnimalFactory->createDog(); 68 $dog->Voice(); 69 } 70 } 71 Client::main();

抽象工廠模式 - 設計模式 - PHP版