一 、抽象工廠模式(abstract factory)
抽象工廠模式提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。
抽象工廠(abstract factory)模式,又稱工具箱(kit 或toolkit)模式。
二、建立過程如下
乙個具體工廠建立乙個產品族,乙個產品族是不同系列產品的組合,產品的建立的邏輯分在在每個具體工廠類中。所有的具體工廠繼承自同乙個抽象工廠。
客戶端建立不同產品族的工廠,產品族的工廠建立具體的產品對客戶端是不可見的。
增加新的產品族時,需要增加具體工廠類,符合ocp原則。
增加新產品時,需要修改具體工廠類和增加產品類,不符合ocp原則
如果沒有應對「多系列物件建立」的需求變化,則沒有必要使用抽象工廠模式,這時候使用簡單的靜態工廠完全可以。
三、乙個簡單的例項
// 產品 plant介面
public inte***ce iplant
//具體產品planta,plantb
public class planta implements iplant
public void dosomething()
}public class plantb implements iplant
public void dosomething()
}// 產品 fruit介面
public inte***ce ifruit
//具體產品fruita,fruitb
public class fruita implements ifruit
public void dosomething()
}public class fruitb implements ifruit
public void dosomething()
}// 抽象工廠方法
public inte***ce abstractfactory
//具體工廠方法
public class factorya implements abstractfactory
public ifruit createfruit()
}public class factoryb implements abstractfactory
public ifruit createfruit()
}
java設計模式之抽象工廠模式
以肯德基麥當勞為例 解析抽象的工廠模式,以下是 的實現 第乙個介面 hb 建立漢堡的工廠 package com.factory.hb hb 漢堡 author lx public inte ce factoryhb 第乙個實現類 肯德基的漢堡 package com.imple.hb import...
Java設計模式之抽象工廠模式
上兩篇講解了簡單工廠模式和工廠方法模式,下面講解工廠模式的最後乙個抽象工廠模式 隨著客戶的要求越來越高,寶馬車需要不同配置的空調和發動機等配件。於是這個工廠開始生產空調和發動機,用來組裝汽車。這時候工廠有兩個系列的產品 空調和發動機。寶馬320li系列配置a型號空調和a型號發動機,寶馬520li系列...
Java設計模式之抽象工廠模式
一 什麼是抽象工廠模式 抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的。抽象工廠模式可以向客戶端提供乙個藉口,使得客戶端在不必指定產品的具體型別的情況下,能夠建立多個產品族的產品物件。fruit介面 public inte ce fruit public abstract fruit ba...