Factory(工廠模式)

資料來源:

目的

  • 建立物件,通常實作為一個Class,或Class 內的靜態方法。

  • 作用為:

    • 對於建立相似的物件,以進行重複性的工作,達到程式碼精簡的目的。

    • 提供一個無需事先知道,用明確型別建立物件的方式。

舉例

  • 我們可以建立一個工廠(披薩店)

    • 這個披薩店有:進行烘烤

    • 這個披薩店有:烤完,運送給客人

  • 今天假設你點了夏威夷披薩,流程:

    • 進行烘烤。

    • 烤完,運送給客人。

  • 今天假設你點了鮪魚披薩,流程:

    • 進行烘烤。

    • 烤完,運送給客人。

  • 重點:將重複的行為給包裝起來,變成一個工廠,很像API。

Code

ES5

資料來源:Alex-JS_Next

ES6

簡單工廠模式

  • 建立相似物件時,進行重複性的工作,達到程式碼精簡

  • 物件或元件涉及高複雜性

  • 須根據不同環境生成物件的時候

  • 處理很多共享屬性的小型物件或元件時

工廠方法

  • 一個父類別,一個子類別

  • 首先建立一個父類別,內要有一個變數,內也要有一個function

  • 經由子類別覆寫的方式,建立出新物件,並且可以使用父類別的方法

抽象工廠

優點

  • 創建物件的過程複雜,但我們只需要知道結果就好

  • 構造函數和創建者分離,符合封閉原則

  • 一個使用者想要創建一個物件,只要知道其名稱就好

  • 想增加一個產品,只要擴建一個工廠即可

缺點

  • 添加新產品時,會增加系統複雜度

  • 需要引入抽象層,增加系統的難以理解度

例子

  • jQuery、Vue非同步組件

Last updated

Was this helpful?