今天折騰第二種設計模式:工廠模式。
和單例模式一樣,工廠模式也是一種建立型模式。
通俗一點的話來講,工廠模式的出現是為了讓開發人員使用統一的介面函式(工廠類)實現相關類的例項化,這些待例項化的類有彼此類似的結構或者功能,這樣開發人員就不用挨個去執行 new 操作,將具體的例項化 new 操作交給封裝好的工廠類。
《大話設計模式》一書中介紹了三種工廠模式,分別是:簡單工廠模式,工廠模式,抽象工廠模式。
其中簡單工廠模式和工廠模式繼承和實現關係相對簡單,且結構上相似度較高。
直接上圖:
圖一 簡單工廠模式結構圖
圖二 工廠模式結構圖
簡單工廠模式一般使用乙個工廠類,實現對所有產品類的生產,該模式中工廠類(creator 類)的建造方法中一般使用switch語言,根據傳入的引數不同,new 出不同的產品類。
從繼承結構上來說,簡單工廠模式更簡潔;但是,簡單工廠模式違背了「開放-封閉原則」(即:對擴充套件開放,對修改封閉),當新增乙個產品類的時候,要修改工廠類中 switch 語句的相關邏輯;工廠模式克服了這個問題,與簡單工廠模式不同,工廠模式針對不同的產品類,使用不同的工廠類,所有工廠類都繼承同乙個建造類介面,其建造類方法返回值的型別是所有產品類的同一父介面型別;當需要新增乙個產品類時,不需要對現有類進行修改,直接新建乙個對應的工廠類,實現了「只擴充套件,不修改」。
設計模式 建立型模式 工廠模式
簡單工廠模式實現了物件建立和使用的分離。抽象圖表介面 抽象產品類 inte ce chart 柱狀圖類 具體產品類 class histogramchart implements chart public void display 餅狀圖類 具體產品類 class piechart implemen...
設計模式 建立型模式 工廠模式,抽象工廠模式
簡單工廠模式不是 23 種裡的一種,簡而言之,就是有乙個專門生產某個產品的類。它只算工廠模式的乙個特殊實現。簡單工廠模式在實際中的應用相對於其他2個工廠模式用的還是相對少得多,因為它只適應很多簡單的情況。1 建立shape介面 public inte ce shape 2 建立實現該介面的具體圖形類...
設計模式之建立型模式 工廠模式
工廠模式 factory pattern 主要用於選擇,根據客戶不同的要求,使用同乙個介面實現不同的功能,然後使用工廠類來判斷使用哪個例項介面,工廠模式是乙個最佳的建立物件的模式。工廠模式的優點 1 在呼叫者只需要知道需要建立的名稱就能夠建立乙個物件,而不用知道產品功能的具體實現,簡化了呼叫者的工作...