設計模式 建立型之工廠模式

2021-10-13 03:04:07 字數 3107 閱讀 5611

讓乙個單獨的類專門實現乙個方法,根據傳入的型別引數建立不同型別的物件,並返回他們的抽象,這種建立物件的模式叫做工廠模式

工廠模式分為簡單工廠模式、工廠方法模式和抽象工廠模式

工廠模式將不同子類的例項化的過程封裝在單獨的類,讓子類只專注於實現,實現了功能解耦

簡單工廠模式由三部分組成:

父類介面:

public

inte***ce

iobject

子類a:

public

class

objecta

implements

iobject

}

子類b:

public

class

objectb

implements

iobject

}

子類c:

public

class

objectc

implements

iobject

}

工廠類:

public

class

objectfactory

elseif(

"objectb"

.equalsignorecase

(objecttype)

)elseif(

"objectc"

.equalsignorecase

(objecttype)

)else

}}

使用:

public

static

void

main

(string[

] args)

i'm a

i'm b

i'm c

對比簡單工廠模式,給每個子類建立乙個工廠類,在對應工廠類中進行子類的例項化

工廠方法模式自己只負責根據傳入引數選擇合適的工廠,將例項化過程提取出來交給每個工廠子類建立,將兩部分操作解耦,更便於維護,代價就是**量增多,可讀性變差

工廠方法模式由5部分組成:

父類介面:

public

inte***ce

iobject

子類a(篇幅太長會比較亂,b、c省略):

public

class

objecta

implements

iobject

}

工廠介面:

public

inte***ce

iobjectfactory

工廠子類a:

public

class

objectafactory

implements

iobjectfactory

}

工廠類:

public

class

objectfactory

elseif(

"objectb"

.equalsignorecase

(objecttype)

)elseif(

"objectc"

.equalsignorecase

(objecttype)

)else

return iobjectfactory.

createobject()

;}}

使用:

public

static

void

main

(string[

] args)

對比工廠方法模式,當子類需要繼續細化為不同型別時,將型別的區分抽象到工廠抽象類,通過繼承讓每個子類的工廠建立對應細化型別的類,實現排列組合的效果;而真正的工廠類會構建子類工廠,讓介面呼叫者自己選擇細化型別

抽象工廠模式由5部分組成:

細化型別的介面:

public

inte***ce

itypeoneobject

public

inte***ce

itypetwoobject

帶有細化型別的子類a(b相同):

public

class

typeoneobjecta

implements

itypeoneobject

}

抽象工廠類:

public

abstract

class

abstractobjectfactory

工廠子類:

public

class

objectafactory

extends

abstractobjectfactory

@override

public itypetwoobject createtypetwoobject()

}

工廠類:

public

class

objectfactory

elseif(

"objectb"

.equalsignorecase

(objecttype)

)else

return abstractobjectfactory;

}}

使用:

public

static

void

main

(string[

] args)

設計模式之工廠模式(建立型)

什麼是設計模式?每乙個模式描述了我們周圍不斷重 生的問題,以及該問題的解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重複勞動。1.簡單工廠 factory 當看到 new 時,就會想到 具體 pizza pizza new cheesepizza 當有很多種pizza時,我們需要用選擇語...

設計模式之建立型 工廠模式

工廠模式 實現了建立者和呼叫者的分離 分類 簡單工廠模式 用來生成同一等級結構中的任意產品 對於增加新的產品,需要修改已有的 工廠方法模式 用來生成同一等級結構中的固定產品 支援增加任意產品 抽象工廠模式 用來生成不同產品族的全部產品 對於增加新的產品,無能為力,支援增加產品族 物件導向設計的基本原...

設計模式 建立型之簡單工廠模式

簡單工廠模式又叫靜態工廠模式。首先,它並不屬於23種gof模式,23種gof中只有工廠模式和抽象工廠模式,但簡單工廠模式是工廠模式和抽象工廠模式的基礎,能更有助於我們理解後面兩者。簡單工廠模式的主要目的是通過不同引數獲取不同類的例項,它的主要實現原理是專門定義乙個工廠類,來建立其他類的例項,被建立的...