|
簡(jiǎn)單工廠模式(Simple Factory Pattern):
定義:簡(jiǎn)單工廠模式又被稱為靜態(tài)工廠方法模式,具體指創(chuàng)建一個(gè)類似于工廠的類,通過(guò)對(duì)該類中成員函數(shù)的調(diào)用返回不同類型的對(duì)象。
在面向?qū)ο缶幊谭绞街?,?jiǎn)單工廠模式是一種經(jīng)常用到的模式。簡(jiǎn)單工廠模式提供了一種在實(shí)時(shí)狀態(tài)下實(shí)例化對(duì)象的機(jī)制,該模式的核心是工廠類,該類中含有必要的判斷邏輯,可以決定在什么時(shí)候創(chuàng)建并返回那個(gè)產(chǎn)品類的實(shí)例化對(duì)象。示例代碼:
<?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定義了一個(gè)獲取產(chǎn)品名稱的成員方法getName(),Product抽象類的具體實(shí)現(xiàn)為子類ProductA和ProductB。工廠類ProductFactory用來(lái)決定在什么時(shí)候創(chuàng)建并返回哪個(gè)產(chǎn)品類的實(shí)例化對(duì)象,使用工廠類時(shí)將參數(shù)傳遞給其成員方法Create(),就可以創(chuàng)建Product類的對(duì)象,無(wú)需考慮具體的生產(chǎn)細(xì)節(jié)。
簡(jiǎn)單工廠模式的類關(guān)系圖:
![]() 簡(jiǎn)單工廠模式的運(yùn)行結(jié)果:
![]() |
|
|
來(lái)自: 糖伯虎點(diǎn)秋香 > 《PHP》