一、設計模式的分類
總體來說設計模式分為三大類:
建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。
其實還有兩類:並髮型模式和執行緒池模式。用乙個來整體描述一下:
首先,簡單工廠模式不屬於23中涉及模式,簡單工廠一般分為:普通簡單工廠、多方法簡單工廠、靜態方法簡單工廠。
1、普通簡單工廠
就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。
舉例如下:(我們舉乙個傳送郵件和簡訊的例子):
首先,建立二者的共同介面:
public inte***ce sender
其次,建立實現類:
public class mailsender implements sender
}
public class smssender implements sender
}
最後,建工廠類:
public class sendfactory else if ("sms".equals(type)) else }}
測試:
public class factorytest
}
this is sms sender!
普通工廠有個問題:如果傳遞的字串出錯,則不能正確建立物件。對其修改
2、多方法簡單工廠
是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。關係圖:
改動上面的sendfactory類
public class sendfactory
public sender producesms()
}
測試類:
public class factorytest
}
this is sms sender!
3、靜態方法簡單工廠
將上面的多個工廠方法模式裡的方法置為靜態的,不需要建立例項,直接呼叫即可。
public class sendfactory
public static sender producesms()
}
測試類:
public class factorytest
}
this is sms sender!
總體來說,工廠模式適合:凡是出現了大量的產品需要建立,並且具有共同的介面時,可以通過工廠方法模式進行建立。在以上的三種模式中,第一種如果傳入的字串有誤,不能正確建立物件,第三種相對於第二種,不需要例項化工廠類,所以,大多數情況下,我們會選用第三種——靜態工廠方法模式。
23中設計模式01 簡單工廠模式
基本簡介 從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙...
23種設計模式01 工廠模式之抽象工廠模式
在上篇文章23種設計模式01 工廠模式 中介紹了簡單工廠模式和工廠方法模式,但是簡單工廠模式在新增新的產品師,需要修改工廠類,違背了開閉原則 ocp原則 工廠方法模式,提供乙個抽象工廠角色,一旦要建立新的同一產品的不同型號,只需要建立乙個具體工廠角色,用於建立對應的產品,而不用修改原有的 解決了簡單...
23種設計模式之 簡單工廠模式
簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式作為入門級的設計模式,並未收錄在gof的23種設計模式之中。然而在其23種設計模式中總會看到簡單工廠模式的影子,所以筆者有必要在這裡介紹一下。工廠類 creator 具體類,提供乙個靜態的方法來建立產品。抽象產品 product ...