抽象工廠模式**
產品類:
//發動機以及型號
public inte***ce engine
public class enginea extends engine
}
public class enginebextends engine
}
//空調以及型號
public inte***ce aircondition
public class airconditiona extends aircondition
}
public class airconditionb extends aircondition
}
建立工廠類:
//建立工廠的介面
public inte***ce abstractfactory
//為寶馬320系列生產配件
public class factorybmw320 implements abstractfactory
@override
public aircondition createaircondition()
}
//寶馬523系列
public class factorybmw523 implements abstractfactory
@override
public aircondition createaircondition()
}
客戶:
public class customer
}
區別 工廠方法模式:
乙個抽象產品類,可以派生出多個具體產品類。
乙個抽象工廠類,可以派生出多個具體工廠類。
每個具體工廠類只能建立乙個具體產品類的例項。
抽象工廠模式:
多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。
乙個抽象工廠類,可以派生出多個具體工廠類。
每個具體工廠類可以建立多個具體產品類的例項。
區別:工廠方法模式只有乙個抽象產品類,而抽象工廠模式有多個。
工廠方法模式的具體工廠類只能建立乙個具體產品類的例項,而抽象工廠模式可以建立多個。
總結:無論是簡單工廠模式,工廠方法模式,還是抽象工廠模式,他們都屬於工廠模式,在形式和特點上也是極為相似的,他們的最終目的都是
為了解耦。在使用時,我們不必去在意這個模式到底工廠方法模式還是抽象工廠模式,因為他們之間的演變常常是令人琢磨不透的。經常你會發現,明明使用的工廠方法模式,當新需求來臨,稍加修改,加入了乙個新方法後,由於類中的產品構成了不同等級結構中的產品族,它就變成抽象工廠模式了;而對於抽象工廠模式,當減少乙個方法使的提供的產品不再構成產品族之後,它就演變成了工廠方法模式。
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...