新聞中心
這篇文章運(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è)等。
不同的人聽(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