1. 程式人生 > >php常見五種設計模式

php常見五種設計模式

turn pub instance blog strong utf func 創建 var

php面向對象基礎知識 請點擊查看

單例模式

單例模式解決的是如何在整個項目中創建唯一對象實例的問題. (示例demo:)

 1 <?php
 2 //單例模式:保證某個類只有一個實例,能自行實例化對象,完成其所有的功能操作.  
 3 //最典型案例:數據庫操作(單例模式可以避免大量的new操作.每一次new操作都會消耗系統和內存的資源.)
 4 header("Content-Type: text/html;charset=utf-8");
 5 class User{
 6     //靜態的私有屬性(保存一個當前類的唯一對象)
 7     private static $instance
; 8 //私有的構造方法,防止類外new新對象 9 private function __construct(){ 10 } 11 //私有的克隆方法,防止類外克隆新對象 12 private function __clone(){ 13 14 } 15 //靜態的公開方法,得到當前類的對象 16 public static function getInstance(){ 17 if(!self::$instance){ 18 self::$instance = new self(); 19 }
20 return self::$instance; 21 } 22 23 private $name; 24 public function setName($n){ 25 $this->name = $n; 26 } 27 public function getName(){ 28 echo $this->name; 29 } 30 31 } 32 $userA = User::getInstance(); 33 $userB = User::getInstance(); 34
echo ‘<pre>‘.‘單例模式獲取唯一實例:‘.‘<br>‘; 35 var_dump($userA,$userB); 36 37 echo ‘<hr>‘.‘單例模式獲取當前類私有屬性:‘.‘<br>‘; 38 $userA->setName(‘admin_a‘); 39 $userB->setName(‘admin_b‘); 40 $userA->getName(); 41 echo ‘<br>‘; 42 $userB->getName();

運行結果如下圖:

技術分享圖片

php常見五種設計模式