1.概述:
–>定義乙個用於建立物件的工廠介面,讓工廠子類決定將哪乙個產品類例項化。此模式讓乙個產品類的例項化延遲到工廠子類。
2.實現:
–>先定義乙個抽象產品類,包含產品類的公共**
–>再定義乙個抽象工廠類,用乙個方法返回乙個具體的產品類
–>分別實現具體的產品類,和對應的具體工廠類
3.**:
//抽象產品類
internal
inte***ce logger
//抽象工廠
internal
inte***ce logge***ctory
//具體產品類
internal
class databaselogger : logger
public
void
writelog()
}//具體工廠類
internal
class databaselogge***ctory : logge***ctory
public
static logger getlogger()
public logger createlogger()
}//具體產品類
internal
class filelogger : logger
public
void
writelog()
}//具體工廠類
internal
class filelogge***ctory : logge***ctory
public logger createlogger()
public logger getlogger()
}
4.工廠方法的隱藏:
–>我們可以在抽象工廠類中新增呼叫產品類的業務方法,讓客戶直接呼叫工廠中的方法就可以不需要建立產品物件。
internal
abstract
class logge***ctory
public logger createlogger();
}
3 設計模式 抽象工廠模式
以下內容摘自 在此權作為筆記 上一章我們分析了簡單工廠模式與工廠方法模式,這一章我們來 一下抽象工廠模式。先看菜鳥教程上給的定義。主要解決 主要解決介面選擇的問題。何時使用 系統的產品有多於乙個的產品族,而系統只消費其中某一族的產品。如何解決 在乙個產品族裡面,定義多個產品。關鍵 在乙個工廠裡聚合多...
設計模式3 抽象工廠模式
抽象工廠簡單地說是工廠的工廠,抽象工廠可以建立具體工廠,由具體工廠來產生具體產品。汽車椅子類 public inte ce chair class chaira implements chair class chairb implements chair 汽車發動機類 public inte ce ...
設計模式系列 3 工廠模式
目錄 一 簡單工廠模式 二 工廠方法模式 三 抽象工廠模式 核心思想 有乙個專門的類來生產其他類的例項,生產的這些例項有乙個共同父類。舉例 假如有乙個汽車工廠,它既可以生產寶馬汽車,也可以生產奧迪汽車。實現 汽車工廠,有生產汽車的方法 public class ca ctory 汽車介面 獲取汽車的...