摘要:簡(jiǎn)單工廠模式就是遵循了這一原則,它讓不同職責(zé)的類(lèi)各司其職。重點(diǎn)來(lái)了,簡(jiǎn)單工廠模式的不足但是簡(jiǎn)單工廠模式有一個(gè)不足,雖然它遵循了單一職責(zé)原則,但它違反了另一條同樣很重要的原則開(kāi)放封閉原則。
該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列,并且以下內(nèi)容基于語(yǔ)言PHP
面向?qū)ο笪宕笤瓌t中有一點(diǎn)非常重要的原則:單一職責(zé)原則。
簡(jiǎn)單工廠模式就是遵循了這一原則,它讓不同職責(zé)的類(lèi)各司其職。
簡(jiǎn)單工廠模式是面向?qū)ο蠖鄳B(tài)性的一個(gè)應(yīng)用,它的好處在于:
代碼具有一定的拓展性
遵循了單一職責(zé)原則
屬于面向接口編程
簡(jiǎn)單工廠模式提供了一個(gè)對(duì)外的類(lèi) Client和實(shí)際工作的類(lèi),外界只需要傳遞特定的參數(shù)就可以調(diào)用不同的實(shí)際功能類(lèi),而不需要直接面對(duì)實(shí)際類(lèi)與函數(shù),拓展性大大增強(qiáng)。
一言不合上代碼。
簡(jiǎn)單工廠模式.php
work(); } } $bankstaff = new Client(); print_r($bankstaff->working("接待")); // output :開(kāi)始接待 ?>
簡(jiǎn)單工廠模式可以通過(guò)傳遞對(duì)應(yīng)的參數(shù)從而調(diào)用指定的類(lèi)方法,后期需要增加職位的話,可以直接新增一個(gè)類(lèi)然后寫(xiě)一個(gè)switch ($type) {case’condition’: }即可。
重點(diǎn)來(lái)了,簡(jiǎn)單工廠模式的不足:
但是簡(jiǎn)單工廠模式有一個(gè)不足,雖然它遵循了單一職責(zé)原則,但它違反了另一條同樣很重要的原則:開(kāi)放封閉原則。
如果新增一個(gè)財(cái)務(wù)職位,那么我們還要修改 Client類(lèi),增加一個(gè)switch ($type) {case’condition’: }判斷,這無(wú)疑是十分災(zāi)難的,因?yàn)閷?xiě)好的代碼我們最好不要再去碰它,因?yàn)楹芸赡茉斐晌粗脑颍阏f(shuō)是不?
由此衍生出更加規(guī)范,拓展性更強(qiáng),遵循了開(kāi)放封閉原則的的工廠模式(沒(méi)有簡(jiǎn)單):
該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/21696.html
摘要:該文章屬于編程中的那些經(jīng)典套路設(shè)計(jì)模式匯總系列,并且以下內(nèi)容基于語(yǔ)言前面我們寫(xiě)了簡(jiǎn)單工廠模式,編程中的那些套路關(guān)于簡(jiǎn)單工廠模式,但簡(jiǎn)單工廠模式有一些不足違反開(kāi)放封閉原則,所以需要設(shè)計(jì)出一套更加規(guī)范的設(shè)計(jì)模式。 該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列,并且以下內(nèi)容基于語(yǔ)言PHP 前面我們寫(xiě)了簡(jiǎn)單工廠模式,《編程中的那些套路——關(guān)于簡(jiǎn)單工廠模式》,但簡(jiǎn)單工廠模式有一些不足(...
該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列,并且以下內(nèi)容基于語(yǔ)言PHP 今天講講策略模式,策略模式 和工廠模式十分相像(或者說(shuō)在代碼邏輯層面,他們是一樣的)。 但策略模式與工廠模式有一點(diǎn)很重要的區(qū)別: 工廠模式:我們著眼于得到對(duì)象,并操作對(duì)象, 策略模式:我們著重得到對(duì)象某方法的運(yùn)行結(jié)果 看代碼 根據(jù)不同的情況使用不同的策略,即策略模式,與工廠模式確實(shí)很像,但他確確實(shí)實(shí)不是...
摘要:如果看不懂的話,可以在評(píng)論區(qū)中提問(wèn),我會(huì)第一時(shí)間回答你無(wú)論何時(shí)我一直都在嗯哼該文章屬于編程中的那些經(jīng)典套路設(shè)計(jì)模式匯總系列 在正式閱讀前,我先談?wù)勎覀冊(cè)撚檬裁醋藙?shì)和心態(tài)學(xué)習(xí)設(shè)計(jì)模式: 如果你還沒(méi)有過(guò)多的編程經(jīng)驗(yàn)(泛指半年以下),我建議你把它當(dāng)做小說(shuō)來(lái)看,能看懂多少是多少,因?yàn)榘肽暌韵陆?jīng)驗(yàn)的程序員用到設(shè)計(jì)模式的情況只會(huì)出現(xiàn)在面試上,至于實(shí)際工作中?相對(duì)來(lái)說(shuō)這部分不會(huì)由你負(fù)責(zé)。 如果你已...
該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列,并且以下內(nèi)容基于語(yǔ)言PHP 在設(shè)計(jì)模式中,單例模式和工廠模式)可以說(shuō)是使用的最普遍的設(shè)計(jì)模式了,所以掌握此種模式尤為重要。 單例模式一般使用在資源共享和需要控制資源的情況下。 例如:購(gòu)物車(chē),回收站,數(shù)據(jù)庫(kù)連接池,計(jì)數(shù)器,配置文件共享等所有項(xiàng)目中只需要存在一個(gè)的模塊,你都可以采用單例模式。 單例模式的好處就在于當(dāng)前進(jìn)程只產(chǎn)生一個(gè)對(duì)象(或者叫...
摘要:我們應(yīng)該寫(xiě)一段拓展性強(qiáng)與維護(hù)性較強(qiáng)的代碼,由此衍生出觀察者模式。 該文章屬于《編程中的那些經(jīng)典套路——設(shè)計(jì)模式匯總》系列,并且以下內(nèi)容基于語(yǔ)言PHP 今天我們來(lái)談?wù)動(dòng)^察者模式,這是一個(gè)經(jīng)常用到的設(shè)計(jì)模式。 讓我們想象一個(gè)場(chǎng)景:一個(gè)網(wǎng)站有不同等級(jí)區(qū)域的用戶(hù),不同等級(jí)的的用戶(hù)登錄后可以獲得對(duì)應(yīng)的服務(wù)(一級(jí)用戶(hù)登錄后獲得一級(jí)服務(wù),二級(jí)用戶(hù)登錄后獲得二級(jí)服務(wù),…以此類(lèi)推)。那么我們?nèi)绾螌?xiě)這段業(yè)...
閱讀 1259·2023-04-26 00:34
閱讀 3419·2023-04-25 16:47
閱讀 2209·2021-11-24 11:14
閱讀 3183·2021-09-26 09:55
閱讀 3900·2019-08-30 15:56
閱讀 3276·2019-08-29 16:57
閱讀 1976·2019-08-26 13:38
閱讀 2725·2019-08-26 12:22