抽象工厂模式 - 设计模式 - PHP版

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象工厂模式 - 设计模式 - PHP版相关的知识,希望对你有一定的参考价值。

 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版的主要内容,如果未能解决你的问题,请参考以下文章

抽象工厂模式(Java与Kotlin版)

PHP设计模式—工厂模式之工厂方法模式

PHP设计模式 - 抽象工厂模式

PHP设计模式抽象工厂模式(Abstract Factory For PHP)

php设计模式---抽象模式模式

javascript的设计模式之抽象工厂模式