抽象工廠模式可以向客戶端提供乙個介面,使得客戶端在不必指定產品具體型別的情況下,建立多個產品族中的產品物件。這就是抽象工廠模式的用意。
每個模式都是針對一定問題的解決方案。抽象工廠模式面對的問題是多產品等級結構的系統設計。
在學習抽象工廠具體例項之前,應該明白兩個重要的概念:產品族和產品等級。
產品族:是指位於不同產品等級結構中,功能相關聯的產品組成的家族。比如amd的cpu和adm晶元的主機板,組成乙個家族。intel的cpu和intel晶元的主機板,又組成乙個家族。而這兩個家族都來自於兩個產品等級:cpu,主機板。乙個等級結構是由相同的結構的產品組成,示意圖如下:
下面以乙個**來說明抽象工廠模式:
1.抽象工廠:
2.具體工廠package abstractfactory;
public inte***ce abstractfactory
3.抽象產品package abstractfactory;
public class factorya implements abstractfactory
public aircondition createaircondition()
}public class factoryb implements abstractfactory
public aircondition createaircondition()
}
4.具體產品package abstractfactory;
public inte***ce engine
public inte***ce aircondition
5.測試類package abstractfactory;
public class enginea implements engine
}public class engineb implements engine
}public class airconditiona implements aircondition
}public class airconditionb implements aircondition
}
6.測試結果:package abstractfactory;
public class test
}
生產-->enginea
生產-->ariconditona
生產-->engineb
生產-->airconditionb
java設計模式 抽象工廠模式
1.概念 設計模式 一書中對於抽象工廠模式是這樣定義的 提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。產品 plant介面 public inte ce plant 標誌介面 具體產品planta,plantb public class planta implements pl...
JAVA設計模式 抽象工廠模式
目錄 一 什麼是抽象工廠模式 二 模式中包含的角色及其職責 三 抽象工廠模式的優缺點 抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的。抽象工廠模式可以向客戶端提供乙個介面,使得客戶端在不必指定產品的具體型別的情況下,能夠建立多個產品族的產品物件。抽象工廠 factory 角色 抽象工廠模式...
JAVA設計模式 抽象工廠模式
抽象工廠模式 abstact factory pattern 也是建立型模式之一 之前主要介紹了工廠方法模式 抽象工廠模式和工廠方法模式稍有區別 工廠方法模式中工廠類生產出來的產品都是具體的 也就是說每個工廠都會生產某一種具體的產品 但是如果工廠類中所生產出來的產品是多種多樣的 工廠方法模式也就不再...