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