使用時機:
- 類別無法確定生成物件的種類,如:知道製造鞋子,但不知道製造的是氣墊鞋還是皮鞋。
- 抽象類別希望憑藉子類別生成物件時。
- 不希望將程式碼寫死在該類別,且希望憑藉子類別應對不同需求。
- 需要生成的物件有相依特性的,如:製造鞋子,鞋子含鞋底、鞋身、鞋帶,產生鞋子就象徵產生鞋底、鞋身、鞋帶。
使用優點:
- 降低轉移平台成本: 如果我們將實作部份直接寫死,當遇見不可抗力,導致必須轉移平台時,為了避免code的邏輯浪費,就必須進行Ctrl+C、Ctrl + V,然而,若使用Factory Method,只需要實作Interface,即可在該平台使用,降低轉移的成本。
- 解決需求未知:當面對需求模糊不清,但確實需要此類別時,藉由此物件模式,將需求實作延遲,未來子類別實作出來即可。
若寫到interface,另外實作code負責new物件,如此一來,在不同平台時,無須複製大量code,只要根據interface實作出另一負責new物件的code,同時可以針對需求,產生不同code
沒有留言:
張貼留言