Swift设计模式 – 工廠方法模式 (Factory Method Pattern)

  • 工廠方法模式:通過選取相關的實例化方法來滿足組件的調用請求,而調用組件不需要了解具體的實例化細節。
  • 什麼時候可以用:當存在多個類共同實現一個協議活著共同繼承一個基礎類的時候,可以使用「工廠方法模式」。

餅乾店

今天我們在一家非常有名的餅乾店工作,我們不僅生產各種餅乾,並且還提供包裝服務。

我們有三種產品,分別為SmallProduct, BigProduct以及LargeProduct,其中每一片餅乾為5元。

而包裝的規則如下:

  • 5個以下:Small Box
  • 6~10個: Big Box
  • 11個以上:Large Box

另外,我們定義Product包含三種信息,

  • boxType:盒子類型,smallBox, bigBox, largeBox
  • name:產品名稱,Small Product, Big Product, Large Product
  • price:價格,按照每個餅乾5元來計算

ProductFactory

我們將「選擇實例化的對象」以及具體「實例化的過程」給包裝了起來,於是調用組件僅需要告訴工廠餅乾的數量就可以取得不同類型的產品。

 

我們常常在一個項目中有時會定義幾種UIButton類型、UITextField類型,甚至UILabel類型,也都可以通過工廠方法模式來生產所需要的組件。

通過統一的管理也避免讓我們在設計師決定修改樣式時,到處修改code。


可以到Github上查看本文提到的工廠方法模式例子

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *