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

2021-08-07 20:55:07 字數 2786 閱讀 8561

我希望能通過足夠簡單的文字,讓大家去體會到前人們所總結出來的設計模式

世間本無設計模式,用的人多了,自然就有了

前面兩張根據漸進明細的原則,逐步的從簡單工廠模式走到工廠模式,今天介紹工廠的終極形態,抽象工廠

不要被終極形態所迷惑,我只是為了增加層層遞進的效果

抽象工廠模式(abstract factory pattern),提供乙個建立一系列相關或相互依賴的介面,而無需指定它們具體的類

我就問還有誰,還有誰能第一眼看明白,理解透徹,知道是什麼意思,站出來,算你輸

老規矩,看黑板,畫重點

2個點

1.抽象,工廠, 這是乙個動賓結果,抽象是動詞,幹嘛呢,抽象->工廠,對工廠進行抽象,我們對類進行抽象可以得到抽象類,抽象類什麼概念??

看上去不同,但是本質上相同的具體概念的抽象,我們稱為抽象類

你可以認為抽象類是乙個超級基類

那同理抽象工廠,我們用形容詞+名詞結構來解釋,抽象的工廠,那就是乙個超級工廠。

超級工廠就是其他工廠的工廠,圍繞超級工廠建立其他工廠

2.無需制定它們具體的類

我們的工廠負責生產具體的東西,不需要顯示的告訴他們,你需要生產什麼什麼,你只需要按照我們超級工廠告訴你的做法去做,你生產出來的東西,就是我們要的東西

我們要的東西,超級工廠裡已經告訴你了,等下請細細品味超級工廠,慢慢的體會這句話 

我們舉個例子

iphone,現在這個星球上人人都不陌生的手機,那iphone其實還分32g 啦,64g啦等等型號的

在這個星球上,富士康是總所周知的蘋果生產主力廠商,注意,是主力,不是全部

我們假設,富士康的競爭對手比亞迪,也能生產iphone

那蘋果公司就會想了,我得分散,我不能全部交給富士康去生產,如果富士康要提價,我還沒有其他選擇麼,我可以選擇比亞迪來制衡富士康

基於這樣乙個案例,我們看看怎麼用抽象工廠模式來實現

我們有iphone,並且有各種不同型號的iphone

///

///我是iphone 抽象類

/// public

abstract

class

iphone

//////

手機的說明書

/// public

abstract

void

instructions();

}//////

64g的 iphone

/// public

class

iphone64g : iphone

public

override

void

instructions()

}//////

32g的 iphone

/// public

class

iphone32g : iphone

public

override

void

instructions()

}

view code

然後我們來建立乙個超級工廠

///

///超級工廠

/// public

inte***ce

ifactory

view code

然後我們分別建立富士康和比亞迪

富士康

///

///富士康

/// public

class

foxconnfactory : ifactory

;return

iphone64g;

}//////

生產32位iphone

/// ///

public

iphone32g createphone32g()

;return

iphone32g;}}

view code

比亞迪

///

///比亞迪

/// public

class

bydfactory : ifactory

;return

iphone64g;

}//////

生產32位iphone

/// ///

public

iphone32g createphone32g()

;return

iphone32g;}}

view code

以上,我們的抽象工廠模式就完成了,我們來看看怎麼呼叫

static

void

main()

view code

結果如下

總結下優點

1.我們有超級工廠,我們隔離了具體類的生產

2.既然有1,那我們就容易改變產品的系列,後續要增加iphone128g, iphone7,8,9就很容易

缺點增加產品的時候雖然說我們很容易,但是別忘記了,我們需要修改超級工廠的定義,同時還要在具體的工廠裡面加**

不要沉迷與怎麼把**修改為抽象工廠模式,理解其為什麼,是什麼,最後去想怎麼用

以上就是關於抽象工廠設計模式的分享

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

我希望能通過足夠簡單的文字,讓大家去體會到前人們所總結出來的設計模式 世間本無設計模式,用的人多了,自然就有了 前面兩張根據漸進明細的原則,逐步的從簡單工廠模式走到工廠模式,今天介紹工廠的終極形態,抽象工廠 不要被終極形態所迷惑,我只是為了增加層層遞進的效果 抽象工廠模式 abstract fact...

3 23 建立型設計模式 簡單工廠與抽象工廠

簡單工廠 工廠方法的使用,是乙個問題逐步演變的過程由簡單工廠 工廠方法。故在此合併梳理知識點。都是為了解決實際問題,在此我們現在假設一種業務場景,我們場景就不來雞鳴狗叫了 首先 我們現在用手機來做業務場景,現在又手機如下 蘋果 三星 華為 塞班。現在每一種手機存在乙個介面需要顯示手機的作業系統。基於...

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

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