為某個物件提供乙個介面,而且無需指定它們的具體類。
工廠方法模式,是簡單工廠模式的延伸(簡單工廠模式中,每出現乙個新的產品(或實現),都要修改工廠類,這違背了開閉原則。所以工廠方法通過將建立產品的實現延遲到子類,解決了這個問題。但這帶來了新的問題,就是每出現乙個新的產品,就要增加新的產品類例項,開發成本變高;並且,客戶端又重新需要關心建立哪個工廠的問題。
簡單來說,工廠方法模式的好處就是,擴充套件方便了,因為抽象工廠一旦建立好,就可以復用了。
用工廠方法模式實現乙個水果工廠,由工廠生產水果:
1)建立抽象水果類,建立具體的某種水果類;
2)建立抽象水果工廠,建立具體的某種水果子工廠;
3)呼叫方呼叫水果子工廠生成水果。
// 抽象水果類
public abstract class fruit
public string getname()
}// 乙個具體水果類
super(name); }}
// 乙個具體水果類
public class banana extends fruit
}
// 抽象水果工廠
public inte***ce ifruitfactory
// 蘋果工廠,專門生產蘋果
@override
public fruit getfruit()
}// 香蕉工廠,專門生產香蕉
public class bananafactory implements ifruitfactory
}
// 呼叫方
public class eat
}
設計模式來一發(四)抽象工廠模式
抽象工廠模式為建立一組相關或相互依賴的物件提供乙個介面,而且無需指定它們的具體類。對比工廠方法模式的定義 為某個物件提供乙個介面,而且無需指定它們的具體類。可以看出抽象工廠模式相當於是對工廠方法模式 的橫向擴充套件,工廠方法只能建立一類介面,而抽象工廠模式可以建立多類介面,當然這些介面遵循一致需求。...
設計模式(三) 工廠方法模式
在設計模式 簡單工廠模式文章中介紹了簡單工廠模式,通過乙個例子講述了如何使用簡單工廠模式。同時也留下了乙個問題,那就是簡單工廠模式破壞了開放 封閉原則。那麼本文將介紹另外一種設計模式 工廠方法模式。主要介紹其概念 用途 實現方式 以及優缺點等。工廠方法模式 factory method patter...
設計模式(三) 工廠方法模式
工廠模式一般分為三種 簡單工廠,工廠方法,抽象工廠 簡單工廠 簡單工廠模式又叫靜態工廠方法模式,是通過專門定義乙個類負責建立其他類的例項,被建立的例項通常都具有共同的父類。簡單工廠將物件的建立過程進行了封裝,使用者不需要知道具體的建立過程,只需要呼叫工廠類獲取物件即可。工廠類的寫法是通過switch...