設計模式是對面向對象設計中反覆出現的問題的解決方案。以下是《大道PHP:LAMP+Zend+開源框架整合開發與實戰》第10章介紹的幾種常用設計模式。包括:簡單工廠模式、單元素模式、觀察者模式、命令模式、策略模式以及MVC模式。
一、簡單工廠模式
簡單工廠模式(Simple Factory Pattern)又被稱爲靜態工廠方法模式(Static Factory Method Pattern),具體指創建一個類似於工廠的類,通過對該類中成員方法的調用返回不同類型的對象。
1、類圖
這裏,抽象類Product定義了一個獲取產品名稱的成員方法getName(),Product抽象類的具體實現爲之類ProductA和之類 ProductB。工廠類ProductFactory 用來決定在什麼時候創建並返回哪個產品類的實例化對象,使用時,只需把參數傳遞給其他成員的create()方法,就可以創建Product類的對象,無 須考慮具體的生產細節。
2、代碼
<?php //抽象類Product abstract class Product { abstract function getName(); } //具體類ProductA class ProductA extends Product { public function getName() { echo "I am ProductA"; } } //具體類ProductB class ProductB extends Product { public function getName() { echo "I am ProductB"; } } // 工廠類ProductFactory class ProductFactory { static function create($name) { switch ($name) { case "A": return new ProductA(); case "B": return new ProductB(); } } } $product=ProductFactory::create("A"); $product->getName(); echo "<br />"; $product=ProductFactory::create("B"); $product->getName();
http://www.linuxfly.org/post/613/