一、上篇回顧
上篇我們主要講述了抽象工廠模式和工廠模式。并且分析了該模式的應(yīng)用場(chǎng)景和一些優(yōu)缺點(diǎn),并且給出了一些實(shí)現(xiàn)的思路和方案,我們現(xiàn)在來回顧一下:
抽象工廠模式:一個(gè)工廠負(fù)責(zé)所有類型對(duì)象的創(chuàng)建,支持無縫的新增新的類型對(duì)象的創(chuàng)建。這種情況是通過配置文件來實(shí)現(xiàn)的,通過字典映射的方式來實(shí)現(xiàn),不過可能效率上有點(diǎn)低下,可以通過優(yōu)化的方式來做,上篇中我們也給出了委托的工廠實(shí)現(xiàn)形式,相比之前的簡(jiǎn)單工廠模式和工廠模式有了更好的靈活性,并且對(duì)具有依賴關(guān)系或者組合關(guān)系的對(duì)象的創(chuàng)建尤為適合。
上篇中,有不少的朋友提出了一些意見和建議,首先很感謝大伙的支持和鼓勵(lì),有朋友提出來,我畫的圖不夠?qū)I(yè),專業(yè)人士應(yīng)該用UML建模圖來搞,我怎么說呢?我也同意這樣的說法,但是我發(fā)現(xiàn)我通過另外的直觀的圖形,大家一看就能更明白,結(jié)合代碼,當(dāng)然好的UML圖,已經(jīng)能表述清楚設(shè)計(jì)的思路和大體實(shí)現(xiàn)了,不過說實(shí)話,我看著就有點(diǎn)類,特別是UML圖復(fù)雜的時(shí)候。所以我還是暫時(shí)先用這種一般的圖形來表述我理解的設(shè)計(jì)模式的思想,看看大伙是什么看法和意見,如果說都說說UML圖的話,那么后面的相關(guān)模式,我會(huì)主要以UML專業(yè)圖來繪制。
我這里總結(jié)下我們以后項(xiàng)目中的可能會(huì)用到設(shè)計(jì)模式 之處或者系統(tǒng)架構(gòu)的時(shí)候,一般情況下有這樣的幾類方案,我們可以在考慮系統(tǒng)的低耦合性的時(shí)候的設(shè)計(jì):
基本上來說能掌握上面的幾類情況,基本上設(shè)計(jì)出來的系統(tǒng)至少是可用的,不知道大家有沒有更多意見和建議。有的請(qǐng)?zhí)岢鰜恚視?huì)備注在文章中。
二、摘要
本文主要是針對(duì)創(chuàng)建型模式中的創(chuàng)建者模式進(jìn)行講述,創(chuàng)建者模式是創(chuàng)建型模式中最負(fù)責(zé)的一個(gè)設(shè)計(jì)模式了,創(chuàng)建者負(fù)責(zé)構(gòu)建一個(gè)對(duì)象的各個(gè)部分,并且完成組裝的過程,我們可以這么理解創(chuàng)建者模式,創(chuàng)建者模式類似與一個(gè)步驟基本固定,但是每個(gè)步驟中的具體形式卻又可以變化的這類對(duì)象的創(chuàng)建。也許這樣說還是太抽象了,我們這么來理解吧,我感覺讓人最容易理解的形式還是圖形化的形式,不但接受起來容易,并且讓人映象深刻,不知道大家是不是和我有同感呢?下面我們給出一個(gè)簡(jiǎn)單的例子,通過圖形化的流程來說明吧:我們這里以我們大伙平時(shí)最常見的做飯為例吧:
可能我這里給出的流程只是我個(gè)人理解的或者看到的過程,不代表全部,呵呵,這里只是事例性的說明。
三、本文大綱
a、上篇回顧。
b、摘要。
c、本文大綱。
d、創(chuàng)建者模式的特點(diǎn)及使用場(chǎng)景。
e、創(chuàng)建者模式的實(shí)現(xiàn)方案。
f、創(chuàng)建者模式使用總結(jié)。
g、系列進(jìn)度。
h、下篇預(yù)告。
四、創(chuàng)建者模式的特點(diǎn)及使用場(chǎng)景
創(chuàng)建者模式主要是用于創(chuàng)建復(fù)雜的一些對(duì)象,這些對(duì)象的創(chuàng)建步驟基本固定,但是可能具體的對(duì)象的組成部分卻又可以自由的變化,現(xiàn)實(shí)中的例子很多,但是可能大伙都比較容易理解的就是,我們的自己花錢配置的臺(tái)式機(jī)或者筆記本,可以 這樣理解,這些硬件設(shè)備的各個(gè)零件,不管是CPU是Intel的還是AMD的,顯卡是華碩的還是小影霸的,不管硬盤是西部數(shù)據(jù)的還是希捷的,其實(shí)想表述的意思就是對(duì)象的具體的組成部分可以是變化的,但是可能我們發(fā)現(xiàn)對(duì)象的這些組成部分的組織起來的過程是相對(duì)固定的,那么我們就可以用創(chuàng)建者模式來做,并且我們引入一個(gè)引導(dǎo)者(Director)來引導(dǎo)這個(gè)對(duì)象的組裝過程。可以簡(jiǎn)單用圖形化的過程來描述如下:
我們上面說明了一個(gè)服裝的大概生產(chǎn)過程,這里生產(chǎn)的順序可能會(huì)發(fā)生變化,或者生產(chǎn)的帽子,上衣等都會(huì)發(fā)生變化,但是服裝的組裝過程基本上變化不大,都是需要帽子,上衣,褲子的,這時(shí)候我們可以通過引導(dǎo)著負(fù)責(zé)組裝這樣的過程,然后我們?cè)诰唧w的每個(gè)部分可以是抽象接口,根據(jù)不同的實(shí)現(xiàn)創(chuàng)建不同的帽子來完成變化。
五、創(chuàng)建者模式的實(shí)現(xiàn)方案
5.1、經(jīng)典的創(chuàng)建者模式實(shí)現(xiàn)
- 我們先給出經(jīng)典創(chuàng)建者模式的一個(gè)實(shí)現(xiàn)形式,然后針對(duì)這個(gè)經(jīng)典模式后面提出幾個(gè)改進(jìn)方案,我們這里以上面講述的服裝的過程作為例子來說明下創(chuàng)建者模式的原理和思想,希望大家也能靈活的運(yùn)用到實(shí)際的項(xiàng)目中去。達(dá)到學(xué)以致用的目的。
我們來看看具體的代碼實(shí)現(xiàn):
/// <summary>
/// 創(chuàng)建對(duì)象組織的所有構(gòu)造步驟接口
/// </summary>
public interface IBuider
{
void BuilderPart1();
void BuilderPart2();
void BuilderPart3();
}
it知識(shí)庫(kù):設(shè)計(jì)模式系列—?jiǎng)?chuàng)建者模式,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。