設計模式 工廠模式

2021-08-02 08:35:52 字數 1656 閱讀 7804

工廠模式:通過子類決定建立的物件是什麼,來達到對物件建立過程封裝的目的。

這裡我們舉乙個簡單的例子:

玩具工廠根據所傳的引數型別,判斷建立何種玩具。

將toy變成介面類,讓各個角色的玩具實現這個介面類。它具有玩具的所有公有方法,這樣提高了系統的靈活性。

public

inte***ce

toy

//實現類:

public

class

catimplements

toy}

public

class

dogimplements

toy}

public

class toyfactory else

if(type.equals(

"bear"))else

if(type.equals(

"dog"))

return toy;}}

缺點:如果我們新增玩具的型別的時候,還是要更改這個工廠**。

現在,我們不再根據玩具工廠來統一建立玩具,根據不同型別的玩具給出不同的工廠。

public

inte***ce toyfactory

public

class

catfactory

implements

toyfactory

}public

class

dogfactory

implements

toyfactory

}public

class

bea***ctory

implements

toyfactory

}

現在我們通過反射和解析xml來建立你想要建立的玩具

bea***ctoryclassname>

factory>

xmlutil來解析這個檔案:

public class xmlutil 

}

/*

測試類*/public

class testfactory catch (exception e) }}

執行結果:

我們可以通過更改xml的檔案,來建立我們想建立的玩具。

工廠模式的優點:

1.我們可以隱藏建立玩具的過程。使用者無需關心。

2. 想要更改想要的產品,無需更改內部**。

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...