抽象工廠又叫配套模式.
該模式和工廠方法模式很相似,也是一個抽象基類和若干個具體工廠類,不同的是抽象工廠的工廠基類定義了多個虛工廠方法,每個虛工廠方法負(fù)責(zé)返回一種產(chǎn)品,多個工廠方法返回多種產(chǎn)品,并且這些產(chǎn)品具有某些聯(lián)系。
GOF 概擴(kuò): 提供一個一系列或相互依賴的接口,需無須指定它們的具體類.
抽象工廠模式的組成部份:
1.產(chǎn)品基類
2.具體產(chǎn)品
3.工廠基類
4.具體工廠
抽象工廠就不止生產(chǎn)Nokia手機(jī)了,還生產(chǎn)相關(guān)的周邊產(chǎn)品,首先NokiaFactory基類會定義兩個虛方法,一個是CreateNokiaPhone用來生產(chǎn)手機(jī),另一個是CreateNokiaCharger用于生產(chǎn)對應(yīng)型號的手機(jī)充電器(假定不同型號手機(jī)使用不同的充電器)。然后派生類N97Factory就要生產(chǎn)兩種相關(guān)的產(chǎn)品,一個是N97Phone,還有一個是N97Charger,這兩個對象是對應(yīng)的關(guān)系,因此封裝到抽象工廠來生產(chǎn)一系列相關(guān)的對象。
總結(jié):用最簡單的話來概括就是,簡單工廠只有一個具體工廠類來創(chuàng)建一種基類的多個不同派生類,工廠方法就是有多個派生于一個基類的具體工廠類,每個具體工廠只生產(chǎn)一種基類的一個派生類,抽象工廠也是只有一個工廠基類,但是每個具體工廠生產(chǎn)多個相關(guān)基類的各一個派生類。