java設計模式原理之工廠模式

2021-09-12 19:10:46 字數 2350 閱讀 9360

一 、簡單工廠模式

簡單工廠就是乙個類中乙個或多個創造的方法,這些創造方法裡面可以通過接收到的引數進行判斷,去完成需要輸出的結果。

下面這個例子就是乙個工廠生產不同檔次的小汽車的例子。

現在得有會造車的工人:

public inte***ce icar{} //先定義乙個小汽車的介面
//三種級別的車實現介面,先不寫裡面的方法啦

//高檔

public class topcar implements icar{}

//中檔

public class midcar implements icar{}

//低檔

public class lowcar implements icar{}

下面要造乙個簡單工廠了:

public class car******factoryelse if(mark.equals("中檔"))else(mark.equals("高檔"))

return item; //造好了

}}

以上乙個最簡單的工廠模式就完成了。簡單工廠通常作為工具類來使用,通常是靜態的。簡單工廠最大特點是從工廠中可以很直觀的得到每種類別的生產數目。

上面的簡單工廠模式,如果現在要聲場一種豪車的話,需要先有乙個造車的工人(新增icar子類),需要在create工廠中增加豪車流水線(if)。現在我不想改我的工廠了怎麼辦?

首先前面部分不變:

public inte***ce icar{} //先定義乙個小汽車的介面
//三種級別的車實現介面,先不寫裡面的方法啦

//高檔

public class topcar implements icar{}

//中檔

public class midcar implements icar{}

//低檔

public class lowcar implements icar{}

現在,我們造乙個厲害點的工廠:

public abstract class absfactory
現在需要做什麼車改流水線(小工廠)就可以了 

就先寫個高檔的吧,其他的一樣:

public class topfactory extends absfactory

}

測試類:相當於我們沒有改工廠,只是改了分出來的抽象的方法(流水線)

public class cartest

}

還有一種模式叫抽象工廠模式被單拿了出來,雖然被單獨提到,但是本質上和第二種工廠模式在本質上是一致的,只是抽象工廠可以生產多種產品,工廠模式相對來說是單一產品。

舉個栗子,比如現在工廠不光造汽車了,開始也要造卡車了,也區分高中低檔:

汽車那都一樣:

public inte***ce icar{} //先定義乙個小汽車的介面
//三種級別的車實現介面,先不寫裡面的方法啦

//高檔

public class topcar implements icar{}

//中檔

public class midcar implements icar{}

//低檔

public class lowcar implements icar{}

現在仿照汽車給卡車也造乙個

public inte***ce itruck{} //先定義乙個卡車的介面
//三種級別的車實現介面,先不寫裡面的方法啦

//高檔

public class toptruck implements itruck{}

//中檔

public class midtruck implements itruck{}

//低檔

public class lowtruck implements itruck{}

跟工廠模式一樣,咱們來定義乙個厲害的抽象工廠,這次工廠裡面定好有汽車和卡車的小工廠

public abstract class absfactory
現在開始造車了,高檔小工廠為例:

public class topfactory extends absfactory

public itruck create()

}

同理。。中檔小工廠,低檔小工廠都可以生產啦

java設計模式之工廠模式

工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的資料生成一組類中某乙個類的例項,通常這一組類有乙個公共的抽象父類或者是介面並且實現了相同的方法,但是這些方法針對不同的資料進行了不同的操作。首先需要定義乙個父類或者介面,該類的子類通過不同的方法實現了父類中的方法。然後需要定義乙個工...

java設計模式之工廠模式

1 只要方法裡面控制產生物件的方法,就可稱為工廠相關方法。2 單例 多例。3 簡單工廠 例子 交通工具 多種交通工具 多種交通工具不同的生產過程 4 介面抽象類使用 一般乙個特性使用介面 會飛的 大概能定義為乙個物體使用抽象類 由於類的多繼承性,建議多用介面。5 抽象工廠 換掉一些列的產品,擴充套件...

java設計模式之工廠模式

工廠模式包括工廠方法模式和抽象工廠模式兩種。實際是將介面的例項建立交給乙個工廠類來做。1.工廠方法模式 又包括普通工廠模式 多方法工廠模式 靜態工廠模式三種設計方式。例如 介面 public inte ce father 實現類public class child1 implements fathe...