|
A3) Factory Method (工廠模式)
定義:定義一個創(chuàng)建對象的接口,并讓子類來決定由哪個類實現(xiàn)這個接口。工廠模式將接口實例化交給子類完成。
工廠模式是非常常見的模式,通常與動態(tài)類的加載相結(jié)合使用。常用的JDBC中,只返回一個Connection接口,而Connection的具體實現(xiàn)則由不同的數(shù)據(jù)庫供應(yīng)商來提供。 對于工廠模式和抽象工廠,有必要多分析一下兩者的區(qū)別,我也很久沒有搞清楚。相似點:都把創(chuàng)建對象的工作交給了子類來做,自己只是提供一個接口。區(qū)別:工廠模式所要創(chuàng)建的對象相對來說非常簡單,而且對象相互獨立,沒有聯(lián)系。通常情況,只從一個工廠中取得一個對象,如LogManager.getLogger();而抽象工廠是工廠模式的一種升級,它所要創(chuàng)建的對象復(fù)雜且相互關(guān)聯(lián)(如不同的茶葉對于水溫的要求不同),運用工廠模式很難保證對象的一致性且擴(kuò)展性不好,這時就需要將這部分對象的創(chuàng)建提取出來,形成抽象工廠。 參考: 1、 http://www./designpatterns/designpattern_factory.htm(中文、java實例) 2、 http://www./Patterns/PatternFactory.aspx(英文、C#實例、UML) 3、 http://www./tech/DesignPattern/FactoryMethod.html(日文、java實例、UML)推薦 |
|
|