小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

常用設(shè)計(jì)模式之簡(jiǎn)單工廠模式

 糖伯虎點(diǎn)秋香 2011-02-09
簡(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é)果:

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多