設計模式:簡單工廠和單例工廠
阿新 • • 發佈:2017-09-23
判斷 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>";
工廠模式
概念
也是一種設計模式!
工廠模式的含義就是:設計一個類(此時這個類就叫做“工廠類”),該類的作用就是幫助其他的類“生產”對象!
簡單工廠
純粹工廠
以上代碼
單例工廠
也是一種單例的實現,但不是“三私一公”的實現,而是在生產對象的工廠類中實現單例效果!
設計模式:簡單工廠和單例工廠