小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

設(shè)計(jì)模式學(xué)習(xí)筆記(十四)——?jiǎng)?chuàng)建型模式總結(jié)

 skywood 2007-08-06

       GoF23種設(shè)計(jì)模式中創(chuàng)建型模式有5種,分別是:Singleton單件模式、Abstract Factory抽象工廠模式、Builder生成器模式、Factory Method工廠方法模式、Prototype原形模式。下面分別總結(jié)這幾種設(shè)計(jì)模式。

 

設(shè)計(jì)模式

GoF的描述

我的理解

Singleton單件模式

保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)該實(shí)例全局的訪問點(diǎn)

控制實(shí)體對象的數(shù)量

Abstract Factory抽象工廠模式

提供一個(gè)接口,讓該接口負(fù)責(zé)創(chuàng)建一系列相關(guān)或者相互依賴的對象,無需指定他們的具體類

解決一個(gè)系列的對象變化的問題

Builder生成器模式

將一個(gè)復(fù)雜對象的構(gòu)建與其表示向分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示

應(yīng)對項(xiàng)目中一些復(fù)雜對象的創(chuàng)建工作。所謂復(fù)雜對象,是指:此對象中還含有其它的子對象

Factory Method工廠方法模式

定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定實(shí)例化那個(gè)類。FactoryMethod使得一個(gè)類的實(shí)例化延遲到子類

解決的是“某個(gè)對象”的創(chuàng)建工作,由于需求的變化,這個(gè)對象常常面臨著劇烈的變化,但是這個(gè)對象擁有的接口相對穩(wěn)定。也就是說:枝節(jié)常常發(fā)生變化,但是枝節(jié)與主干的接口相對穩(wěn)定

Prototype原形模式

使用原型實(shí)例指定創(chuàng)建對象的種類,然后通過拷貝這些原型來創(chuàng)建新的對象

某些結(jié)構(gòu)復(fù)雜的對象的創(chuàng)建工作;由于需求的變化,這些對象經(jīng)常面臨著劇烈的變化,但是他們卻擁有比較穩(wěn)定一致的接口

      

在學(xué)習(xí)的過程中,覺得從功能上看Abstract Factory模式和Builder模式容易混淆,Factory Method模式和Prototype模式不好區(qū)分。Singleton模式?jīng)]什么太大的困難。下面就來分析一下前四種模式。

一、Abstract Factory模式和Builder模式:

Abstract Factory是應(yīng)對一系列對象的創(chuàng)建的問題,正如前面文章中舉的例子,對于創(chuàng)建一個(gè)汽車對象來說,Abstract Factory模式更關(guān)注一系列的對象的創(chuàng)建,或者說是汽車類型中的各個(gè)部分,如:Wheel、Engine、Body等等類型的創(chuàng)建。換句話說關(guān)注點(diǎn)在這一系列對象上。

Builder是應(yīng)對一個(gè)復(fù)雜對象創(chuàng)建的問題,或者說是針對這個(gè)復(fù)雜對象中的子對象的創(chuàng)建的問題。以汽車的例子來說,我覺得比起Abstract Factory模式,Builder模式相對注重汽車類型(上面所說的“復(fù)雜對象”)本身以及其各個(gè)部分(WheelEngine、Body等等)類型的創(chuàng)建。Builder模式要求這個(gè)復(fù)雜的類型(汽車)中的各個(gè)子類型的結(jié)合部分相對穩(wěn)定,用例子說明就是對于汽車來說,無論用什么配件組裝,個(gè)個(gè)配件的組裝方式都一樣,有相對穩(wěn)定的接口。對于這輛車你用什么牌子的Wheel、什么牌子的Engine可能變化會(huì)很大很頻繁。

二、Factory Method模式和Prototype模式:

開始我覺得這兩種模式從功能上講是一樣的(個(gè)人觀點(diǎn)),都是封裝了對對象的創(chuàng)建,只不過Prototype模式是用原型克隆進(jìn)行拷貝來完成對象的創(chuàng)建,在這之中還應(yīng)注意淺拷貝和深拷貝的區(qū)別。在向同事請教后有點(diǎn)明白。這兩種模式在應(yīng)用場景上還是一定的區(qū)別的。

Factory Method模式是重新創(chuàng)建一個(gè)對象

Prototype模式是利用現(xiàn)有的對象進(jìn)行克隆,當(dāng)兩個(gè)對象或多個(gè)對象雷同的時(shí)候,可以考慮用一個(gè)已創(chuàng)建的對象去克隆出其余的對象。
   以上是對創(chuàng)建型模式的總結(jié),如有不對的觀點(diǎn)歡迎指正。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多