23種設計模式01 簡單工廠

2021-07-12 04:35:53 字數 1926 閱讀 7732

一、設計模式的分類

總體來說設計模式分為三大類:

建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構型模式,共七種:介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。

其實還有兩類:並髮型模式和執行緒池模式。用乙個來整體描述一下:

首先,簡單工廠模式不屬於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 ...