簡單工廠模式(Simple Factory Pattern):
定義:簡單工廠模式又被稱為靜態(tài)工廠方法模式,具體指創(chuàng)建一個類似于工廠的類,通過對該類中成員函數(shù)的調(diào)用返回不同類型的對象。
在面向?qū)ο缶幊谭绞街?,簡單工廠模式是一種經(jīng)常用到的模式。簡單工廠模式提供了一種在實時狀態(tài)下實例化對象的機制,該模式的核心是工廠類,該類中含有必要的判斷邏輯,可以決定在什么時候創(chuàng)建并返回那個產(chǎn)品類的實例化對象。示例代碼:
<?php
abstract class Product {
abstract function getName();
}
class ProductA extends Product {
function getName() {
echo "我是ProductA";
}
}
class ProductB extends Product {
function getName() {
echo "我是ProductB";
}
}
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();
?>
在上述示例代碼中,抽象類Product定義了一個獲取產(chǎn)品名稱的成員方法getName(),Product抽象類的具體實現(xiàn)為子類ProductA和ProductB。工廠類ProductFactory用來決定在什么時候創(chuàng)建并返回哪個產(chǎn)品類的實例化對象,使用工廠類時將參數(shù)傳遞給其成員方法Create(),就可以創(chuàng)建Product類的對象,無需考慮具體的生產(chǎn)細(xì)節(jié)。
簡單工廠模式的類關(guān)系圖:
簡單工廠模式的運行結(jié)果:
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。