PHP設計模式——簡單工廠模式

設計模式是對面向對象設計中反覆出現的問題的解決方案。以下是《大道PHP:LAMP+Zend+開源框架整合開發與實戰》第10章介紹的幾種常用設計模式。包括:簡單工廠模式、單元素模式、觀察者模式、命令模式、策略模式以及MVC模式。

一、簡單工廠模式
簡單工廠模式(Simple Factory Pattern)又被稱爲靜態工廠方法模式(Static Factory Method Pattern),具體指創建一個類似於工廠的類,通過對該類中成員方法的調用返回不同類型的對象。
1、類圖

wKioL1RYf1qBYAk3AADT0cPHlb8059.jpg

這裏,抽象類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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章