設計模式之工廠模式

工廠模式包括工廠方法模式和抽象工廠模式。而抽象工廠模式是工廠方法模式的擴展。 數據庫

在工廠模式下,咱們一般採用工廠方法來代替new來實例化對象。 編碼

具體是如何作的呢? spa

首先,定義一個接口來建立對象,可是讓子類來決定那些類須要被實例化。工廠方法把實例化的工做推遲到子類中去實現。 對象

應用場景 blog

  • 有一組相似的對象須要被建立。
  • 在編碼中不能預見須要建立哪一種類的實例對象。
  • 系統須要考慮擴展性,不依賴產品實例如何被建立,組合和表達的細節。

工廠方法

客戶端經過調用creator類中的factory方法,返回一個Iproduct對象,Iproduct是一個接口,它的子類具體實現爲product1,product2…. 接口

抽象工廠模式

抽象工廠模式是工廠方法的一個擴展而已,將本來的creator抽象成接口,根據不一樣的需求建立不一樣的creator子類。工廠方法一般用來一個產品的等級結構,而抽象工廠一般用來建立多種產品的等級結構。 產品

JDBC很好的應用了工廠模式,爲多種關係型數據庫提供統一訪問,結構以下: 擴展

優勢

  • 系統能夠在不修改具體工廠角色的狀況下引進新的產品。
  • 客戶端不用關心對象的建立。
  • 很好的利用了面向對象的多態特性。
相關文章
相關標籤/搜索