在整個項目的構建過程中,我們通常是通過new操作符去直接創建一個對象的實例,但是在複雜模型的情況下,直接去創建對象可能會帶來一些問題,如:
在這些情況下,創建對象就需要這樣的一系列“過程”,而不是一個簡簡單單的操作。在這種情況下,我們就考慮到能不能有一種方法,讓我們不關心這些複雜的創建過程,而很容易的獲取到我們想要的對象呢,這就引入了工廠模式,用工廠去給我們做這些複雜的過程。
工廠模式有三種:簡單工廠模式、工廠方法模式和抽象工廠模式
1、簡單工廠模式:建立一個工廠去負責對象的創建,我們不需要關心創建的細節,所有的構建過程都讓工廠替我們完成,這就降低了 client 和具體産品之間的耦合程度。
2、工廠方法模式:
從上面可以看出,簡單工廠模式非常簡單,但是簡單的同時也帶來了許多問題,比如添加一種新的産品時候,需要更改已有的工廠類,這使得産品的添加去工廠類緊緊耦合到一起,為了解決這個問題,引入了工廠方法模式。
工廠方法模式去掉了簡單工廠方法的靜态屬性,使得它可以被子類繼承。這樣在簡單工廠模式裡将産品創建集中在一起的壓力就可以由工廠方法模式裡的不同工廠子類來分擔。
工廠方法模式通常由以下幾部分組成:
3、抽象工廠模式:
工廠方法模式有效的解決了增加産品要修改原有的工廠類,但是它的工廠隻能創建單個産品,而不能創建一個産品族,比如以北方的梨子、北方的香蕉為一個産品族,南方的例子、南方的香蕉為另外一個産品族,這時候工廠方法模式就有點力不從心了,因此引入了抽象工廠模式。
抽象工廠模式是所有形态的工廠模式中最為抽象的,它可以向客戶端提供一個借口,使得客戶端在不必指定産品的具體類型情況下,能夠創建多個産品族對象。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!