日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
什么是PHP設(shè)計(jì)模式的簡(jiǎn)單工廠模式

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹什么是PHP設(shè)計(jì)模式的簡(jiǎn)單工廠模式,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都創(chuàng)新互聯(lián)主要業(yè)務(wù)有網(wǎng)站營(yíng)銷策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號(hào)開發(fā)、小程序定制開發(fā)、H5技術(shù)、程序開發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開展業(yè)務(wù)的過(guò)程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、營(yíng)銷型網(wǎng)站建設(shè)資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。 

聽(tīng)音樂(lè)

目前市場(chǎng)上主流的音樂(lè)播放器有QQ音樂(lè)、網(wǎng)易云音樂(lè)、酷狗音樂(lè)、酷我音樂(lè)等。

什么是PHP設(shè)計(jì)模式的簡(jiǎn)單工廠模式

不同的人聽(tīng)音樂(lè)使用的播放器可能會(huì)不同。我們可能會(huì)選擇其中一種音樂(lè)播放器來(lái)聽(tīng)音樂(lè),請(qǐng)看下面的代碼:

if ($type == 1) {
    $player = new QQPlayer();
} else if ($type == 2) {
    $player = new WyPlayer();
} else if ($type == 3) {
    $player = new KGPlayer();
}

$player->on();  // 打開播放器
$player->choiceMusic('思念是一種病');  // 選擇歌曲
$player->play();  // 開始播放

如果這個(gè)時(shí)候,我們想加入酷我音樂(lè)播放器或者覺(jué)得可以淘汰網(wǎng)易云音樂(lè)了(聽(tīng)不了周杰倫的歌),那么就需要修改該程序了(需要修改條件分支了)。所以,這樣的代碼是不好維護(hù)的。

寫程序有一個(gè)原則就是,將會(huì)改變的地方抽離出來(lái)封裝。我們將條件分支這段抽離出來(lái)封裝到新的類中。

簡(jiǎn)單工程模式

定義:定義一個(gè)工廠類,他可以根據(jù)參數(shù)的不同返回不同類的實(shí)例,被創(chuàng)建的實(shí)例通常都具有共同的父類

在簡(jiǎn)單工廠模式中用于被創(chuàng)建實(shí)例的方法通常為靜態(tài)方法,因此簡(jiǎn)單工廠模式又被成為靜態(tài)工廠方法

下面,我們來(lái)創(chuàng)建一個(gè)簡(jiǎn)單工程模式,代碼如下:

class SimpleFactory
{
    public static function createMusicPlayer ($type)
    {
        if ($type == 1) {
            $player = new QQPlayer();
        } else if ($type == 2) {
            $player = new WyPlayer();
        } else if ($type == 3) {
            $player = new KGPlayer();
        } else {
            return null;
        }
        return $player;
    }
}

然后,文章開頭的那段代碼就可以修改成如下:

$player  = SimpleFactory::createMusicPlayer($type);

$player->on();  // 打開播放器
$player->choiceMusic('思念是一種病');  // 選擇歌曲
$player->play();  // 開始播放

可能會(huì)有疑問(wèn),這么做有什么用處呢?好像只是將問(wèn)題從一個(gè)地方搬運(yùn)到了另一個(gè)地方。

想想看,我們可能會(huì)早上聽(tīng)音樂(lè)或者晚上聽(tīng)音樂(lè),或者這個(gè)播放器沒(méi)有我們想要聽(tīng)的音樂(lè)的話,我們需要換一個(gè)播放器。那么就可能在多個(gè)地方new出音樂(lè)播放器。所以把這段代碼放一個(gè)地方總比放多個(gè)地方要好,需要改的時(shí)候只需該一個(gè)地方就行了。這樣維護(hù)的時(shí)候,只需要修改簡(jiǎn)單工廠模式類中的createMusicPlayer即可。

關(guān)于什么是PHP設(shè)計(jì)模式的簡(jiǎn)單工廠模式就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


文章題目:什么是PHP設(shè)計(jì)模式的簡(jiǎn)單工廠模式
當(dāng)前地址:http://www.dlmjj.cn/article/ihoehs.html