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































































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
















































































































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