[轉貼] [Design Pattern] 簡單工廠模式 (Simple Factory Pattern) 不怕飲料有幾種

2013082010:50

出處:http://www.dotblogs.com.tw/joysdw12/archive/2013/06/23/design-pattern-simple-factory-pattern.aspx

前言


  繼裝飾者模式後接下來講工廠模式,首先先來談簡單工廠模式,工廠模式算一個很常使用到的設計模式,而簡單工廠模式算是最基本的工廠模式,在 Head First Design Patterns 中也提到更多的情況下可以當作是一種編成習慣,接下來讓我用飲料店的情境來加以說明。

 

實作簡單工廠模式


  假設我是一間只賣綠茶的飲料店,客人買了一杯綠茶時我們會這樣做,如下

1public GreenTea TeaOrders()
2{
3    GreenTea greenTea = new GreenTea();
4    greenTea.AddMaterial(); // 加料
5    greenTea.Brew(); // 沖泡
6    greenTea.PouredCup(); // 裝杯
7    return greenTea;
8}

 

  但是,如果只賣綠茶已經不能應付客人想多選擇的需求,我們就必須增加更多個飲料品項,現在我們增加了紅茶供客人選擇,如下

01// 綠茶
02public GreenTea GreenTeaOrders()
03{
04    GreenTea greenTea = new GreenTea();
05