之前介紹過(guò)簡(jiǎn)單工廠模式、工廠模式,這節(jié)介紹下工廠家族的最后一種設(shè)計(jì)模式--抽象工廠設(shè)計(jì)模式。
實(shí)際上,如果對(duì)前兩種模式熟練掌握的話,這個(gè)相對(duì)來(lái)說(shuō)最復(fù)雜的設(shè)計(jì)模式也不難理解,它也可以理解為是在工廠模式基礎(chǔ)上的升級(jí)。
我們知道,工廠模式將一個(gè)類的實(shí)例化延遲到子類,具體產(chǎn)品類由具體工廠類來(lái)實(shí)例化,但這種關(guān)系基本是一對(duì)一的,也就是說(shuō)一個(gè)抽象工廠類對(duì)應(yīng)一個(gè)抽象產(chǎn)品類,多個(gè)具體工廠類對(duì)應(yīng)多個(gè)具體產(chǎn)品類。歸納來(lái)說(shuō)就是一個(gè)工廠族只服務(wù)于一個(gè)產(chǎn)品族。
抽象工廠模式實(shí)現(xiàn)了工廠類與產(chǎn)品類一對(duì)多的關(guān)系,或者說(shuō)工廠族與產(chǎn)品族實(shí)現(xiàn)了一對(duì)多的關(guān)系。它們的區(qū)別可以用一家工廠來(lái)形容,工廠模式就像是這家工廠的一條生產(chǎn)線,而抽象工廠模式就好比整個(gè)工廠的所有生產(chǎn)線。