GOF之生成器模式

1. 生成器模式的定義:
      將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示
2.生成器的本質
      分離整體構建算法和部件構造
3.生成器模式的功能
     (1)生成器模式的主要功能是構建複雜的產品,而且是細化的、分步驟的構建產品,也就是生成器模式重在一步一步解決構造複雜對象的問題,更爲重要的是,這個構建的過程是統一的、固定不變的,變化的部分放到生成器部分了,只要配置不同的生成器,那麼同樣的構建過程,就能構建出不同的產品來。
4.生成器模式的構成生成器模式的結構和說明

         

         Builder : 生成器接口,定義創建一個Product對象所需的各個部件的操作
         ConcreteBuilder : 具體的生成器實現,實現各個部件的創建,並負責組裝Product對象的各個部件,同時還提供一個讓用戶獲取組裝完成後的產品對象的方法
         Director : 指導者,也被稱爲導向者,主要用來使用Builder接口,以一個統一的過程來構建所需要的Product對象
         Product : 產品,表示被生成器構建的複雜對象,包含多個部件

        (1)生成器模式分成兩個很重要的部分
               1)一部分是builder接口,這裏是定義瞭如何構建各個部件,也就是知道每個部件功能如何實現    
               2)另外一個是Director,Director是知道如何組合來構建產品,也就是說Director負責整體的構建算法,而且通常是分步驟地來執行
        (2)不管如何變化,Builder模式都存在這麼兩個部分,一個部分是部件構造和產品裝配,        另一個部分是整體構建的算法

5.生成器模式的優點
        (1)鬆散耦合
              生成器模式可以用同一個構建算法構建出表現上完全不同的產品,實現產品構建和產品表現上的分離。生成器模式正是把產品構建的過程獨立出來,使它和具體產品的表現鬆散耦合,從而使得構建算法可以複用,而產品表現也可以靈活的、方便的擴展和切換
         (2)可以很容易地改變產品的內部表示
               在生成器模式種,由於Builder對象只是提供接口給Director使用,那麼具體的部件創建和裝配方式是被Builder接口隱藏了的,Director並不知道這些具體的實現細節,這樣一來,要想改變產品的內部表示,只需要切換Builder的具體實現即可,不用管Director,因此變得很容易。
         (3)更好的複用性
               生成器模式很好的實現了構建算法和具體產品實現的分離。這樣一來,使得構建產品的算法可以複用。同樣的道理,具體產品的實現也可以使用複用,同一個產品的實現,可以配合不同的構建算法使用。

6.何時選用生成器模式
        (1)如果創建對象的算法,應該獨立於該對象的組成部分以及它們的裝配方式時
        (2)如果同一個構建過程有着不同的表現時

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章