IOS設計模式學習(6)產生器

來源:互聯網
上載者:User

1 前言
有時候,構建某些對象有多種不同方式。如果這些邏輯包含在構建這些對象的類中的單一方法中,構建的邏輯會非常荒唐(例如,針對各種構建需求的一大片嵌套if-else或者switch-case語句)。如果能把構建過程分解為:客戶-指導者-產生器(client-director-builder)的關係,那麼過程將更容易管理與複用。針對此類別關係的設計模式成為產生器。

2 詳述
2.1 簡述
除了客戶和所需要的產品,產生器模式包含連個角色:Director(指導者)和Builder(產生器)。Builder知道如何在缺少某些特定資訊來建造特點產品。Director知道Builder應該如何建造什麼,以參數向其提供缺少的資訊來建造特定產品。

產生器模式講一個複雜物件的構建與它的表現分離,使得同樣的構建過程可以建立不同的表現。

2.2 何時使用
(1)需要建立涉及各種組件的複雜物件。建立對象的演算法應該獨立於組件的裝配方式。常見的例子是構建組合對象。

(2)構建過程需要以不同的方式(例如,組件或表現的不同組合)構建對象。

2.3 產生器與抽象工廠的對比
(1)產生器構建複雜物件,抽象工廠構建簡單或者複雜物件;

(2)產生器以多個步驟構建對象,抽象工廠以單一步驟構建對象;

(3)產生器以多種方式構建對象昂,抽象工廠以單一步驟構建對象;

(4)產生器在構建過程的最後一步返回產品,抽象工廠立刻返回產品;

(5)產生器專註一個特定產品,抽象工廠強調一套產品。

3 結語
產生器模式能協助構建涉及組件與表現的各種組件的對象。

以上是所有內容,希望對大家有所協助。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.