JAVA設計模式 工廠方法模式

2021-09-01 14:07:08 字數 952 閱讀 7092

工廠方法模式:

很多人都會與抽象工廠模式混淆在一起,工廠方法主要想表達,父類的方法或方法中呼叫了其他物件的方法時,有部分父類無法確定,但又想讓父類完成大多開發工作,使得子類們可以最大限度的復用,又能動態的改變實現利於擴充套件性。

定義工廠方法類

public abstract class cat implements icat(){

//抓老鼠行為

public void catchmouse(string catname);

//步驟二

imouse mouse = createmousefactory();

mouse.kill();//老鼠個兒屁了

//步驟三

system.out.println();

}//抽象方法

public abstract imouse createmousefactory();

}這時,只有個父類,還是個半成品,屁事兒幹不了。但它實際上卻已經實現了大部分**工作。子類們或著是使用者要「構造乙個貓物件」就很簡單了。繼續看一下:

//我們建立乙隻「tom」貓

public class tomcat extends cat(){

//抓老鼠行為

public imouse createmousefactory()

}呼叫者,想讓tom抓老鼠,那麼就這麼簡單:

public static void main(string args)

完成了,下次又需要抓乙隻叫「大白的老鼠」,那麼和上面一樣,只需要覆蓋抽象方法即可。如果步驟一與步驟三的工作量很大,你就知道這是多麼爽的一件事了。因為你完全沒寫,它就實現了,而且還能動態的指揮貓咪抓哪種老鼠,這裡不提模式之間的組合,否則**會很多,不易學習這種模式。**語法可能有錯誤,全手敲的。見諒~

這就是工廠方法模式的思想,實現的方式很多,就是讓父類完成大量工作,把穩定的**寫到父類中,變化的部分延遲到子類中確定!

Java設計模式 工廠方法模式

定義乙個用於建立物件的介面,讓子類決定將哪乙個類例項化。factory method 使乙個類的例項化延遲到其子類。package car inte ce public inte ce icar inte ce package car imple import car inte ce.icar in...

Java設計模式 工廠方法模式

工廠方法模式應用背景 客戶類不關心使用哪個具體的類,只關心介面所提供的功能。建立過程比較複雜,例如需要初始化其他關聯的資源類。介面或者抽象類有許多實現類,客戶 需要編寫大量if else邏輯來決定執行時使用哪個具體的實現類。不希望給客戶程式暴露太多的類的內部結構,這樣做可以降低耦合度。優化效能,比如...

java設計模式 工廠方法模式

簡單工廠模式的應用就是用來建立乙個物件,簡單工廠模式是將所有物件的初始化集於乙個具體的工廠類來實現,這個工廠類負責所有產品的建立,但是這種建立只能建立單一的產品,如簡單工廠模式裡的chickenfactory這種工廠只能生產雞肉這個系列的產品,而當需求發生變化時簡單工廠模式就無法應對了。例如 我再一...