php-工厂模式,转

针对自己的不足与加深php的认识,选择用php来研究各种设计模式。

今天就看了设计模式的介绍,并学习了工厂模式,因为工厂模式比较简单,也比较常用。工厂模式的最主要作用就是对象创建的封装、简化创建对象操作。

下面是一个简单例子:

 1 <?php
 2 abstract class Parents
 3 {
 4 public function show(){}
 5 }
 6 
 7 class Sons extends Parents
 8 {
 9 public function show()
10 {
11 echo 'i am son!';
12 }
13 }
14 
15 class Girls extends Parents
16 {
17 public function show()
18 {
19 echo 'i am girl!';
20 }
21 }
22 
23 class Factory
24 {
25 private $arrParent = array();
26 public function create($parent)
27 {
28 $this->arrParent[] = new $parent();
29 }
30 public function show()
31 {
32 foreach($this->arrParent as $par)
33 {
34 $par->show();
35 }
36 }
37 }
38 
39 $factory = new Factory();
40 $factory->create('Sons');
41 $factory->create('Girls');
42 $factory->show();
43 ?>

工厂模式的应该比较多,用的最多情况就是利用工厂根据条件动态的选择所要创建的对象。这样做的好处是可以在只修改工厂和新增的类就可以添加新的对象创建,对于代码维护和扩展都是个不错的选择,而且动态创建对象的应用带来了更多的灵活性。