定義
提供一個接口,用于創(chuàng)建相關(guān)或相依賴對象的家族,而不需要明確指定具體類。
原則
依賴抽象,而不要依賴具體類
實用性
1,一個系統(tǒng)應(yīng)當(dāng)不依賴于產(chǎn)品類實例被創(chuàng)立,組成,和表示的細節(jié)。這對于所有形態(tài)的工廠模式都是重要的。
2,這個系統(tǒng)的產(chǎn)品有多于一個的產(chǎn)品族。
3,同屬于同一個產(chǎn)品族的產(chǎn)品是設(shè)計成在一起使用的。這一約束必須得在系統(tǒng)的設(shè)計中體現(xiàn)出來。
角色
提供一個接口,用于創(chuàng)建相關(guān)或相依賴對象的家族,而不需要明確指定具體類。
原則
依賴抽象,而不要依賴具體類
實用性
1,一個系統(tǒng)應(yīng)當(dāng)不依賴于產(chǎn)品類實例被創(chuàng)立,組成,和表示的細節(jié)。這對于所有形態(tài)的工廠模式都是重要的。
2,這個系統(tǒng)的產(chǎn)品有多于一個的產(chǎn)品族。
3,同屬于同一個產(chǎn)品族的產(chǎn)品是設(shè)計成在一起使用的。這一約束必須得在系統(tǒng)的設(shè)計中體現(xiàn)出來。
角色
![]() 圖1. 抽象工廠模式的類圖定義 |
從上圖可以看出,簡單工廠模式涉及到以下的角色
抽象工廠(AbstractFactory)類或接口
擔(dān)任這個角色的是工廠方法模式的核心,它是與應(yīng)用程序無關(guān)的。任何在模式中創(chuàng)立對象的工廠類必須實現(xiàn)這個接口,或繼承這個類。
實工廠類 (Conrete Factory)
擔(dān)任這個角色的是與應(yīng)用程序緊密相關(guān)的,直接在應(yīng)用程序調(diào)用下,創(chuàng)立產(chǎn)品實例的那樣一些類。
抽象產(chǎn)品 (Abstract Product)
擔(dān)任這個角色的類是工廠方法模式所創(chuàng)立的對象的父類,或它們共同擁有的接口。
實產(chǎn)品 (Concrete Product)
擔(dān)任這個角色的類是工廠方法模式所創(chuàng)立的任何對象所屬的類。
實例