由Simple Factory來的factory物件,將factory的概念抽像化後,由實體子類別負責創建物件。
工廠方法模式,定義了一個建立物件的介面,但由次類別決定要實體化的類別為何者,工廠方法讓類別把實體化的動作,交由次類別進行。
工廠方法改善了簡單工場的缺點,它先將創建物件的責任抽象化,由適當的物件A擁有這個責任,物件A直接創建相對映的物件。
client只相依於抽像的Product與Creator,故Creator與Product改變時,不會影響client與原有的其它程式碼,符合OCP。
簡單工廠由相應的工廠物件負責創建物件,工廠方法則由原本工廠的使用者直接負起創建的責任。
如果有需要,可將工廠方法所創建之物件的constructor改成private,強迫使用工廠方法創建物件。