1.概念
《設計模式》一書中對於抽象工廠模式是這樣定義的:提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。
// 產品 plant介面
public inte***ce plant //標誌介面
//具體產品planta,plantb
public class planta implements plant
public void dosomething()
}
public class plantb implements plant
public void dosomething()
}
// 產品 fruit介面
public inte***ce fruit
//具體產品fruita,fruitb
public class fruita implements fruit
public void dosomething()
}
public class fruitb implements fruit
public void dosomething()
}
// 抽象工廠方法
public inte***ce abstractfactory
//具體工廠方法
public class factorya implements abstractfactory
public fruit createfruit()
}
public class factoryb implements abstractfactory
public fruit createfruit()
}
//呼叫工廠方法
public client
}
3、抽象工廠模式與工廠方法模式的區別
可以這麼說,工廠方法模式是一種極端情況的抽象工廠模式,而抽象工廠模式可以看成是工廠方法模式的一種推廣。
(1)、其實工廠方法模式是用來建立乙個產品的等級結構的,而抽象工廠模式是用來建立多個產品的等級結構的。工廠方法建立一般只有乙個方法,建立一種產品。抽象工廠一般有多個方法,建立一系列產品。
(2)、工廠方法模式只有乙個抽象產品類,而抽象工廠模式有多個。工廠方法模式的具體工廠類只能建立乙個具體產品類的例項,而抽象工廠模式可以建立多個。
簡而言之->
工廠方法模式:乙個抽象產品類,可以派生出多個具體產品類。
乙個抽象工廠類,可以派生出多個具體工廠類。
每個具體工廠類只能建立乙個具體產品類的例項。
抽象工廠模式:多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。
乙個抽象工廠類,可以派生出多個具體工廠類。
每個具體工廠類可以建立多個具體產品類的例項。
JAVA設計模式 抽象工廠模式
目錄 一 什麼是抽象工廠模式 二 模式中包含的角色及其職責 三 抽象工廠模式的優缺點 抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的。抽象工廠模式可以向客戶端提供乙個介面,使得客戶端在不必指定產品的具體型別的情況下,能夠建立多個產品族的產品物件。抽象工廠 factory 角色 抽象工廠模式...
Java設計模式 抽象工廠模式
抽象工廠模式可以向客戶端提供乙個介面,使得客戶端在不必指定產品具體型別的情況下,建立多個產品族中的產品物件。這就是抽象工廠模式的用意。每個模式都是針對一定問題的解決方案。抽象工廠模式面對的問題是多產品等級結構的系統設計。在學習抽象工廠具體例項之前,應該明白兩個重要的概念 產品族和產品等級。產品族 是...
JAVA設計模式 抽象工廠模式
抽象工廠模式 abstact factory pattern 也是建立型模式之一 之前主要介紹了工廠方法模式 抽象工廠模式和工廠方法模式稍有區別 工廠方法模式中工廠類生產出來的產品都是具體的 也就是說每個工廠都會生產某一種具體的產品 但是如果工廠類中所生產出來的產品是多種多樣的 工廠方法模式也就不再...