(三)簡單工廠

2021-09-19 23:35:29 字數 1141 閱讀 1637

工廠方式模式簡單工廠是用來封裝物件的建立,定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類

簡單工廠算不上是乙個設計模式,更趨向於是一種程式設計習慣,我們通過建立乙個工廠類,來封裝對物件的建立。

public class pizzastoreelse if(type.equals("greek"))else if(type.equals("pepperoni"))

pizza.prepare();

pizza.bake();

pizza.cut();

return pizza;}}

如上**,我們可以根據傳入的type來構造不同的物件,但是當我們需要去擴充套件的時候,不得不返回去修改原有的**,故我們將建立物件的這段**單獨拎出來,構造乙個新類專職去建立物件,我們稱這個物件為「工廠」,如下所示

public class ******pizzafactory  else if (type.equals("pepperoni"))  else if (type.equals("clam"))  else if (type.equals("veggie")) 

return pizza;

}}

public class pizzastore 

public pizza orderpizza(string type)

}

也許有人會問,這樣做有什麼好處,我們把建立物件的交給了工廠進行管理,其他物件如果需要物件時,也可以使用這個工廠來進行物件建立,通過我們將簡單工廠裡的方法設定為靜態的方法

public static pizza createpizza(string type)
我們在呼叫的時候,就可以簡化**,直接使用類呼叫靜態方法。

public class pizzastore 

}

使用靜態方法也有缺點,如果有子類,則無法通過繼承的方式來改變建立物件的方法。

簡單工廠,通過建立工廠類來封裝我們對物件的建立。

簡單工廠模式(三)

工廠模式,就是負責生成其他物件的類或方法。比如,我們有一些類,它們都繼承自交通工具類 inte ce vehicle class carimplements vehicle class ship implements vehicle class aircraft implements vehicle...

工廠三兄弟之簡單工廠模式(三)

為了將chart類的職責分離,同時將chart物件的建立和使用分離,sunny軟體公司開發人員決定使用簡單工廠模式對圖表庫進行重構,重構後的結構如圖2所示 在圖2中,chart介面充當抽象產品類,其子類histogramchart piechart和linechart充當具體產品類,chartfac...

工廠三兄弟之簡單工廠模式(三)

為了將chart 類的職責分離,同時將 chart 物件的建立和使用分離,sunny 軟體公司開發人員決定使用簡單工廠模式對圖表庫進行重構,重構後的結構如圖 2所示 圖2 圖表庫結構圖 在圖2中,chart介面充當抽象產品類,其子類histogramchart piechart和linechart充...