常用軟體設計模式(三)工廠方法模式
阿新 • • 發佈:2018-11-08
工廠方法模式:定義一個用於建立物件的介面,讓其子類決定例項化哪一個工廠類,工廠模式使其建立過程延遲到子類進行。
優點:1、一個呼叫者想建立一個物件,只要知道其名稱就可以了
2、擴充套件性高,如果想增加一個產品,只要擴充套件一個工廠類就可以
3、遮蔽產品的具體實現,克服了簡單工廠所違背的開閉原則的缺點,又保持了封裝物件建立過程的優點
缺點:每次增加一個產品時,都需要增加一個具體類和物件實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類的依賴。
作為一種建立類模式,在任何需要生成複雜物件的地方,都可以使用工廠方法模式。複雜物件適合使用工廠模式,而簡單物件,特別是只需要通過 new 就可以完成建立的物件,無需使用工廠模式。
class Fruit//水果類 { public void AA() { Console.WriteLine("涼拌"); } public void BB() { Console.WriteLine("清蒸"); } public void CC() { Console.WriteLine("爆炒"); } } class Apple: Fruit//蘋果類,繼承水果類 { } class Banana:Fruit//香蕉類,繼承水果類 { } interface IFactory //水果工廠介面 { Fruit CreateFruit(); } class AppleFactory : IFactory //蘋果工廠 { public Fruit CreateFruit() { return new Apple(); } } class BananaFactory : IFactory //香蕉工廠 { public Fruit CreateFruit() { return new Banana(); } } class Program { static void Main(string[] args) { IFactory factory = new AppleFactory(); Fruit fruit = factory.CreateFruit(); fruit.AA(); fruit.BB(); } }