簡單工廠模式
1. 目的?
?????? ?工廠模式就是專門負(fù)責(zé)將大量有共同接口的類實(shí)例化,而且不必事先知道每次是要實(shí)例化哪一個類的模式。它定義一個用于創(chuàng)建對象的接口,由子類決定實(shí)例化哪一個類。
2 . 簡單工廠模式的結(jié)構(gòu)?
?
3. 一個簡單例子































































4. 小結(jié)工廠模式的適用范圍
? 在編碼時不能預(yù)見需要創(chuàng)建哪一種類的實(shí)例。
? 一個類使用它的子類來創(chuàng)建對象。
? 開發(fā)人員不希望創(chuàng)建了哪個類的實(shí)例以及如何創(chuàng)建實(shí)例的信息暴露給外部程序。?
?
?
抽象工廠模式
?
1. 抽象工廠模式可以說是簡單工廠模式的擴(kuò)展,它們主要的區(qū)別在于需要創(chuàng)建對象的復(fù)雜程度上。
在抽象工廠模式中,抽象產(chǎn)品可能是一個或多個,從而構(gòu)成一個或多個產(chǎn)品族。 在只有一個產(chǎn)品族的情況下,抽象工廠模式實(shí)際上退化到工廠方法模式。
2. 抽象工廠模式的結(jié)構(gòu)?
3. 一個簡單例子
















































































































4. 小結(jié)
在以下情況下,應(yīng)當(dāng)考慮使用抽象工廠模式。
首先,一個系統(tǒng)應(yīng)當(dāng)不依賴于產(chǎn)品類實(shí)例被創(chuàng)立,組成,和表示的細(xì)節(jié)。這對于所有形態(tài)的工廠模式都是重要的。
其次,這個系統(tǒng)的產(chǎn)品有多于一個的產(chǎn)品族。
第三,同屬于同一個產(chǎn)品族的產(chǎn)品是設(shè)計(jì)成在一起使用的。這一約束必須得在系統(tǒng)的設(shè)計(jì)中體現(xiàn)出來。
最后,不同的產(chǎn)品以一系列的接口的面貌出現(xiàn),從而使系統(tǒng)不依賴于接口實(shí)現(xiàn)的細(xì)節(jié)。
其中第二丶第三個條件是我們選用抽象工廠模式而非其它形態(tài)的工廠模式的關(guān)鍵性條件。