簡單工廠模式大意:通過工廠能夠生產不同的產品對象。利用一個單獨的類創建不同類的實例化對象,所以簡單工廠模式也算設計模式中創建型的一種,這個單獨的類就是工廠類,能夠實例化出不同類型的對象,如果我們需要什麼類型的對象,可以通過工廠類獲取,而不需要自己實例化,暫時理解爲分門別類,統一管理的方式。
理解場景:每個人都需要穿鞋,古代人穿鞋大都需要自己做,窮人穿草鞋,富人穿布鞋,隨着工業化的發展,現代人少有人自己納鞋,而是直接購買,購買的鞋來自於工廠,爲了滿足市場不同的需求,工廠可以生產出各式各樣的鞋(比如說莆田0.0),可生產“nike“,”adidas“,”Vans“,”CONVERSE”等。或許這就能體現簡單工廠模式的優點吧。
1.個體和鞋工廠分工明確,這是低耦合的特點。
2.只需要一個工廠,就可以滿足N多人穿鞋的需求。
3.很明顯,鞋廠會適應各種人品味需求而增加鞋的種類,改變鞋的款式。而個人想做出自己想要的鞋顯然不現實,這是良好的可擴展性。
簡單工廠模式實現原理:
代碼:
package cn.simplefactory;
//抽象類角色
interface Shoes{
public void showDiffer();
}
//具體產品角色
class Vans implements Shoes{
@Override
public void showDiffer(){
System.out.println("這是Vans!");
}
}
class CONVERSE implements Shoes{
@Override
public void showDiffer(){
System.out.println("這是匡威!");
}
}
//工廠角色
class ShoesFactory{
public static Shoes getshoesType(String str){
if(str.equals("vans")){
return new Vans();
}
else if(str.equals("converse")){
return new CONVERSE();
}
else
return null;
}
}
public class TestShoes {
public static void main(String[] args) {
Shoes s1 = ShoesFactory.getshoesType("vans");
s1.showDiffer();
Shoes s2 = ShoesFactory.getshoesType("converse");
s2.showDiffer();
}
}
總結:簡單工廠模式三要素:抽象類角色,具體產品角色,工廠類角色。
心得:學習設計模式要深入實踐才能深刻明白其中的原理和使用方法。先大概瞭解設計模式的思想,在後面的漫漫長路中細細去體會。