一、工廠方法模式的結構
工廠方法時簡單工廠模式的進一步抽象和推廣。由於使用了多態性,工廠方法保持了簡單工廠的優點克服了它的缺點。
首先,在工廠方法模式中,核心的工廠類不在負責所有產品的創建,具體的創建工作交給子類完成。核心類作爲一個抽象工廠,僅僅給出具體工廠類必須實現的接口。在實際的系統中,如果產品存在如下的等級層次結構:
基於上面的產品結構,出現了多於一個的抽象產品類,這是一種最真實的產品結構。把工廠方法模式應用到這種產品結構中,最常用的方式是模擬一種與上述產品結構相同的工廠等級結構。
然後相應的工廠角色負責創建相應的產品角色。
工廠方法模式和簡單工廠模式在結構上是明顯不同的,工廠模式的核心是一個抽象工廠類,而簡單工廠模式的核心是一個具體的工廠類。
工廠方法模式的系統中包含以下角色:
- 抽象工廠(Creator)
- 具體工廠(Concrete Creator)
- 抽象產品(Product)
- 具體產品(Concrete Product)