Franky's LIFE

          Anything... ...

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            53 隨筆 :: 87 文章 :: 6 評論 :: 0 Trackbacks
          GoF23 種設計模式中創(chuàng)建型模式有 5 種,分別是: Singleton 單件模式、 Abstract Factory 抽象工廠模式、 Builder 生成器模式、 Factory Method 工廠方法模式、 Prototype 原形模式。下面分別總結這幾種設計模式。

          ?

          設計模式

          GoF 的描述

          我的理解

          Singleton 單件模式

          保證一個類僅有一個實例,并提供一個該實例全局的訪問點

          控制實體對象的數量

          Abstract Factory 抽象工廠模式

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

          解決一個系列的對象變化的問題

          Builder 生成器模式

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

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

          Factory Method 工廠方法模式

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

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

          Prototype 原形模式

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

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

          ??????

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

          一、 Abstract Factory 模式和 Builder 模式:

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

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

          二、 Factory Method 模式和 Prototype 模式:

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

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

          Prototype 模式是利用現有的對象進行克隆,當兩個對象或多個對象雷同的時候,可以考慮用一個已創(chuàng)建的對象去克隆出其余的對象。
          ???以上是對創(chuàng)建型模式的總結,如有不對的觀點歡迎指正。

          posted on 2007-03-19 21:03 Franky 閱讀(153) 評論(0)  編輯  收藏 所屬分類: IT知識
          主站蜘蛛池模板: 张家港市| 色达县| 双牌县| 临汾市| 灵武市| 咸丰县| 鹤岗市| 新兴县| 鲜城| 绍兴县| 濮阳县| 平武县| 康保县| 武强县| 金华市| 营口市| 平舆县| 安远县| 东台市| 法库县| 深泽县| 延庆县| 灵武市| 临泽县| 梁河县| 巨野县| 虎林市| 岗巴县| 习水县| 鄂尔多斯市| 阳城县| 锦屏县| 土默特右旗| 侯马市| 莱州市| 普安县| 兴仁县| 台北县| 体育| 台南县| 仙游县|