1. 程式人生 > >設計模式:簡單工廠和單例工廠

設計模式:簡單工廠和單例工廠

判斷 include sse src div list .class name set

 1 <?php
 2 /**
 3  *  純粹工廠類
 4  */
 5 /*class Factory {
 6     public static function getOBJ($class_name) {
 7         include_once ‘./‘.$class_name.‘.class.php‘;
 8         return new $class_name; //可變類
 9     }
10 }
11 */
12 
13 /**
14  *  cun工廠類
15  */
16 class Factory {
17     /*
18      生產單例對象
19 @param string $class_name 獲得對象所需要的類名 20 @param object 單例對象 21 */ 22 public static function getOBJ($class_name) { 23 //鍵 => 值 24 // 類名 => 該類已經實例化了的對象 25 static $obj_list = array(); 26 // 判斷當前的類有沒有被實例化 27 if (!isset($obj_list[$class_name
])) { 28 //說明沒有被實例化,所以需要實例化 29 include_once ‘./‘.$class_name.‘.class.php‘; 30 $obj_list[$class_name] = new $class_name; 31 } 32 return $obj_list[$class_name]; 33 } 34 }

調用方法:

 1 include ‘./Factory.class.php‘;
 2 $stu1 = Factory::getOBJ(‘Student‘);
3 $stu2 = Factory::getOBJ(‘Student‘); 4 echo "<pre>"; 5 var_dump($stu1); 6 echo "</pre>"; 7 echo "<hr>"; 8 9 echo "<pre>"; 10 var_dump($stu2); 11 echo "</pre>"; 12 echo "<hr>";

技術分享

工廠模式

概念

也是一種設計模式!

工廠模式的含義就是:設計一個類(此時這個類就叫做“工廠類”),該類的作用就是幫助其他的類“生產”對象!

簡單工廠

技術分享

技術分享

技術分享

純粹工廠

以上代碼

單例工廠

也是一種單例的實現,但不是“三私一公”的實現,而是在生產對象的工廠類中實現單例效果!

設計模式:簡單工廠和單例工廠