|
Simple Factory模式(又稱Static Factory模式),一個Simple Factory生產成品,而對客戶端隱藏產品產生的細節,物件如何生成,生成前是否與其它物件建立依賴關係,客戶端皆不用理會,用以將物件生成方式之變化與客戶端程式碼隔離。 實作時定義一個產品介面(interface),並透過特定靜態方法來建立成品。 假設有一個音樂盒工廠,購買音樂盒的客人不用知道音樂盒是如何製作的,他只要知道如何播放音樂盒就可以了,以 UML 類別圖來表示以上的概念: ![]()
public interface IMusicBox {
public class PianoBox implements IMusicBox {
public class ViolinBox implements IMusicBox {
public class MusicBoxFactory {
public class MusicBoxDemo {
由於客戶端只依賴於IMusicBox介面,所以即使您日後改變了createMusicBox()中的實作方式,對客戶端是一點影響也沒有的,白話來說,音樂盒製作方式會因技術進步而變,但不影響客戶如何操作音樂盒,因為客戶只要知道操作介面即可。 來看看Simple Factory的類別結構: ![]() 客戶只要面對Factory,客戶依賴於產品介面,產品的具體實作是可以與客戶隔開的,它們也是可以抽換的。 將Simple Factory的概念擴充,可以設計出各種物件皆通用的 Factory 類別,作為用來專門生成、組裝、管理物件的容器。 |