抽象工廠模式是工廠模式中最抽象的乙個工廠模式,引入的產品組的概念,對它的定義就是將一組相關或相互依賴的物件提供介面,而不需要具體的物件,這個定義是很抽象的。
抽象工廠模式包括的角色:
1.抽象工廠類:宣告一組用於建立一種產品的的方法
2.具體工廠類:繼承了抽象工廠類,建立一組具體產品的物件
3.抽象產品類:所有產品物件的父類,負責描述所有產品例項共有的公共介面
4.具體產品類:抽象產品類的實現類 ,實現某個具體的產品物件
,我們來舉個例子:以電腦為例子,電腦a配的是cpua和顯示卡a,電腦b配的是cupb和顯示卡b。
可能這樣講還是有點模糊,看下面的**實現後,再回來看應該就能明白了:
抽象產品類
public inte***ce computer
public abstract class cpu implements computer
public abstract class displaycard implements computer
具體產品類public class cpua extends cpu
}public class displaycarda extends displaycard
}public class cpub extends cpu
}public class displaycardb extends displaycard
}
抽象工廠類public inte***ce compute***ctory
具體工廠類電腦a的具體工廠類
public class compute***ctorya implements compute***ctory
public displaycard getdisplaycard()
}電腦b的具體工廠類
public class compute***ctoryb implements compute***ctory
public displaycard getdisplaycard()
}
測試
public class factorytest
}
輸出:
抽象工廠特點就是:每個工廠都只是生產自己特定的產品,不同工廠生產的產品例項是不關聯的,這需要我們在客戶端進行封裝的時候就要做好。
缺點:新增乙個具體工廠很簡單,但是工廠想生產一種新的產品,會修改很多類。因為沒加乙個新產品,那麼就要在抽象工廠裡定義建立新產品物件的方法,而其他具體工廠又是實現該抽象工廠。
什麼時候用抽象工廠模式呢?
產品多,關係複雜,產品可以抽象出來,那麼就適合用抽象工廠模式
設計模式 建立型模式之抽象工廠模式
抽象工廠模式 abstract factory pattern 隸屬於設計模式中的建立型模式,用於產品族的構建。抽象工廠是所有形態的工廠模式中最為抽象和最具一般性的一種形態。抽象工廠是指當有多個抽象角色時使用的一種工廠模式。抽象工廠模式可以向客戶端提供乙個介面,使客戶端在不必指定產品的具體情況下,建...
設計模式 抽象工廠 建立型模式
介紹了簡單工廠與工廠方法之後,現在我們來看一下工廠三兄弟的最後乙個 抽象工廠。那什麼是抽象工廠呢?抽象工廠模式 abstract factory pattern 提供乙個建立一系列相關或相互依賴物件 的介面,而無須指定它們具體的類。抽象工廠模式又稱為kit模式,屬於物件建立型模式。說起來,抽象工廠與...
設計模式 建立型模式 工廠模式,抽象工廠模式
簡單工廠模式不是 23 種裡的一種,簡而言之,就是有乙個專門生產某個產品的類。它只算工廠模式的乙個特殊實現。簡單工廠模式在實際中的應用相對於其他2個工廠模式用的還是相對少得多,因為它只適應很多簡單的情況。1 建立shape介面 public inte ce shape 2 建立實現該介面的具體圖形類...