淺讀《大話設(shè)計(jì)模式》————8、雷鋒依然在人間——工廠方法模式
簡(jiǎn)單工廠模式、工廠方法模式,這兩者的區(qū)別我想顧名思義!前者講的是這個(gè)模式用到一個(gè)簡(jiǎn)單工廠,但是后者強(qiáng)調(diào)的是工廠方法,其實(shí)意思就是該模式中工廠設(shè)計(jì)很重要。
其實(shí)理解了簡(jiǎn)單工廠,基本上只要再稍微看一下工廠模式的設(shè)計(jì),就很容易理解這兩個(gè)模式。不過(guò),似乎工廠方法模式是簡(jiǎn)單工廠模式的改進(jìn)版,簡(jiǎn)單工廠沒(méi)有存在的必要。但是事實(shí)并非如此,在擴(kuò)展不經(jīng)常的時(shí)候,一個(gè)簡(jiǎn)單工廠就可以了。但是要是經(jīng)常有相似功能的擴(kuò)展需求,那么工廠方法模式就要有價(jià)值一些。
在代碼形式上,簡(jiǎn)單工廠模式的最大優(yōu)點(diǎn)在于工廠類中包含了必要的邏輯判斷,根據(jù)客戶端的選擇條件動(dòng)態(tài)實(shí)例化相關(guān)的類,對(duì)于客戶端來(lái)說(shuō),去除了與具體產(chǎn)品的依賴。但是,工廠方法是把簡(jiǎn)單工廠的內(nèi)部邏輯判斷移到了客戶端代碼來(lái)進(jìn)行。所以,想要增加功能,就同時(shí)需要修改客戶端代碼。但是這樣代碼結(jié)構(gòu)還是很清晰的,所以兩者各有千秋!