1、簡(jiǎn)介 和簡(jiǎn)單工廠模式不同,核心工廠類不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一個(gè)抽象工廠角色,僅負(fù)責(zé)給出具體工廠類必須實(shí)現(xiàn)的接口,而不接觸哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化這種細(xì)節(jié)。工廠方法模式可以允許很多具體工廠類從抽象工廠類中將創(chuàng)建行為繼承下來(lái),從而可以成為多個(gè)簡(jiǎn)單工廠模式的綜合,進(jìn)而推廣了簡(jiǎn)單工廠模式。
2、使用場(chǎng)景及能解決的問(wèn)題 一個(gè)系統(tǒng)要獨(dú)立于它的產(chǎn)品的創(chuàng)建、組合和表示時(shí) 一個(gè)系統(tǒng)要由多個(gè)產(chǎn)品系列中的一個(gè)來(lái)配置時(shí) 當(dāng)你要強(qiáng)調(diào)一系列相關(guān)的產(chǎn)品對(duì)象的設(shè)計(jì)以便進(jìn)行聯(lián)合使用時(shí) 當(dāng)你提供一個(gè)產(chǎn)品類庫(kù),而只想顯示它們的接口而不是實(shí)現(xiàn)時(shí)
3、類圖
4、實(shí)例
首先看看工廠類:
接下來(lái)看看工廠相關(guān)的實(shí)現(xiàn)類:
產(chǎn)品類:
產(chǎn)品相關(guān)的實(shí)現(xiàn)類:
最后看看客戶端的相關(guān)類:
5、優(yōu)缺點(diǎn)
完全支持“開(kāi)-閉”原則,如果需要增加一個(gè)新的產(chǎn)品,需要向系統(tǒng)中加入一個(gè)這個(gè)產(chǎn)品類以及相應(yīng)的工廠類,沒(méi)有必要修改客戶端。
posted on 2008-05-28 13:58 云淡風(fēng)清 閱讀(244) 評(píng)論(0) 編輯 收藏 所屬分類: Design Patterns
Powered by: BlogJava Copyright © 云淡風(fēng)清