在開發(fā)中,工廠模式得到了廣泛的應(yīng)用,每個人都很容易掌握。許多初學(xué)者只使用它,不知道具體的含義。以下是對工廠模式的詳細(xì)分析。
一、工廠模式主要是為創(chuàng)建對象提供過渡接口,以便將創(chuàng)建對象的具體過程屏蔽隔離起來,達(dá)到提高靈活性的目的。
工廠模式分為三類:
1)簡單工廠模式:不利于產(chǎn)生系列產(chǎn)品;
2)工廠方法模式:又稱為多形性工廠;
3)抽象工廠模式:又稱為工具箱,產(chǎn)生產(chǎn)品族,但不利于產(chǎn)生新的產(chǎn)品;
這三種模式從上到下逐步抽象,并且更具一般性。
在簡單的工廠模式中,工廠類處于產(chǎn)品類實例調(diào)用的中心位置。它決定了哪個產(chǎn)品類別應(yīng)該被實例化,就像一個交警站在車流中,決定釋放那個方向的車輛。
先來看看它的組成:
1) 工廠類角色:這是本模式的核心,含有一定的商業(yè)邏輯和判斷邏輯。它往往由一個具體類實現(xiàn)。
2) 抽象產(chǎn)品角色:它一般是具體產(chǎn)品繼承的父類或者實現(xiàn)的接口。由接口或者抽象類來實現(xiàn)。
3) 具體產(chǎn)品角色:工廠類所創(chuàng)建的對象就是此角色的實例。
工廠方法模式是簡單工廠模式的進(jìn)一步抽象化和推廣,工廠方法模式里不再只由一個工廠類決定那一個產(chǎn)品類應(yīng)當(dāng)被實例化,這個決定被交給抽象工廠的子類去做。
來看下它的組成:
1) 抽象工廠角色: 這是工廠方法模式的核心,它與應(yīng)用程序無關(guān)。是具體工廠角色必須實現(xiàn)的接口或者必須繼承的父類,它由抽象類或者接口來實現(xiàn)。
2) 具體工廠角色:它含有和具體業(yè)務(wù)邏輯有關(guān)的代碼,由應(yīng)用程序調(diào)用以創(chuàng)建對應(yīng)的具體產(chǎn)品的對象。
3) 抽象產(chǎn)品角色:它是具體產(chǎn)品繼承的父類或者是實現(xiàn)的接口。一般有抽象類或者接口來實現(xiàn)。
4) 具體產(chǎn)品角色:具體工廠角色所創(chuàng)建的對象就是此角色的實例。