php中設計模式的學習筆記
設計模式(design pattern)是物件導向設計中反覆出現的問題的解決方案,設計模式是一種比一般類的設計更加抽象的一種思想,
它往往涉及到多個類的定義和使用。
在php的開發過程中,經常使用到得設計模式包括:簡單工廠模式、單元素模式、觀察者模式、命令模式、策略模式以及mvc模式等。
/*** 簡單工廠模式(****** factory pattern),具體指建立乙個類似於工廠的類,通過對類中成員方法的呼叫返回不同的物件
* 該模式的核心是工廠類,該類中含有必要的判斷邏輯,可以決定在什麼時候建立並返回哪個產品的例項化物件
*///定義抽象類product
abstract class product
}//定義具體產品類b
class productb extends product
}//定義工廠類
class productfactory}}
$product=productfactory::create("a");
$product->getname();
echo "
";$product=productfactory::create("b");
$product->getname();
/*** 單元素模式(singleton pattern)是指對指定的類只能例項化一次。
* 該模式通常包含乙個私有構造方法,用來確保無法通過建立物件或者轉殖的方式對其進行例項化
* 該模式還包含有乙個私有靜態屬性和公有靜態方法。
* 公有靜態方法負責對其本身進行例項化,而私有靜態屬性負責儲存例項化的物件。
*/class singleton
//定義私有構造方法
public static function getinstance() //定義公有靜態方法
//return self::$instance;
}public function printstring()
$single=singleton::getinstance();
$single->printstring();
//$two=singleton::getinstance();
//$two->printstring();
/*** 觀察者模式(observer pattern)
*/inte***ce iobserver
inte***ce iobservable
class userlist implements iobservable
public function addcustomer($name)
}class userlistlogger implements iobserver
}$ul=new userlist();
$ul->addobserver(new userlistlogger());
$ul->addcustomer("aaa");
/*** 命令模式(command pattern)
*/inte***ce icommand //定義命令介面
class commandchain
public function runcommand($name,$args) //執行命令}}
class usercommand implements icommand //定義使用者命令類
else}}
class mailcommand implements icommand //定義郵件命令類
else}}
$cc=new commandchain();
$cc->addcommand(new usercommand());
$cc->addcommand(new mailcommand());
$cc->runcommand('使用者',null);
echo '
';$cc->runcommand('郵件',null);
/*** 策略模式(strategy pattern)
*/inte***ce istrategy
class walkstrategy implements istrategy
}class ridebikestrategy implements istrategy
}class carstrategy implements istrategy
}class context
}$context=new context();
$context->find(new walkstrategy());
$context->find(new ridebikestrategy());
$context->find(new carstrategy());
php 設計模式 學習筆記
php 有如下幾種設計模式 初聽到設計模式可能讓你覺得很抽象,其實設計模式就是對常見程式設計問題的靈活解決方案。1 工廠模式 factory 他之所以被成為工廠模式是因為他負責 生產 物件,看看下面的例子 class factoryelse 你如何呼叫呢 factorymql factory fac...
PHP設計模式學習筆記
當多個地方需要例項化乙個類的時候,為了滿足之後可能需要做修改的可能的時候可以使用工廠模式。即在乙個類中的乙個方法例項化 之後需要修改只要修改該函式即可。資料庫鏈結,單例模式,將建構函式宣告為私有 遮蔽在其他地方例項化資料庫連線,宣告乙個方法建立例項 new self 即定義乙個受保護的屬性陣列,當呼...
PHP學習筆記2 設計模式
工廠設計模式 設計模式 design pattern 是一套反覆被使用 多數人知曉的 經過分類編目的 設計經驗的總結。三私一公 私有的靜態的儲存物件的屬性 私有的構造方法,阻止類外new物件 私有的轉殖方法,阻止類外clone物件 共有的靜態的建立物件的方法 單例設計模式的核心 單例設計模式的核心 ...