為一組相關或相互依賴的物件提供乙個介面,而且無需指定他們的具體類。
產品族內的約束為非公開狀態,在不同的工廠中,各種產品之間可能具有不同的相互依賴關係,這些依賴關係由工廠封裝在其內部,對於工廠的使用者來說這些依賴關係是不可見的。
生產線的擴充套件非常容易。如果要針對同一產品族建立新的生產線,只需要實現產品族中的所有產品介面並建立新的工廠類即可。
抽象工廠的最大缺點就是產品族本身的擴充套件非常困難。如果在產品族中增加乙個新的產品型別,則需要修改多個介面,並且會影響已有的工廠類即可。
inte***ce food
class a implements food{}
class b implements food{}
inte***ce abstractfactory
class factorya implements abstractfactory
}class factoryb implements abstractfactory
}
public class client
}
建立型模式之抽象工廠模式
寫在前面 抽象工廠模式 抽象工廠模式結構圖 框架 abstract class abstractfactory class concretefactory1 extends abstractfactory public abstractproductb createproductb class co...
建立型模式之抽象工廠
提供乙個介面,用於建立 相關的物件家族 抽象工廠模式建立的是物件家族,也就是很多物件而不是乙個物件,並且這些物件是相關的,也就是說必須一起建立出來。而工廠方法模式只是用於建立乙個物件,這和抽象工廠模式有很大不同。從高層次來看,抽象工廠使用了組合,而工廠方法模式使用了繼承。public class a...
建立型模式 工廠模式and抽象工廠模式
意圖 定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。主要解決 主要解決介面選擇的問題。何時使用 我們明確地計畫不同條件下建立不同例項時。如何解決 讓其子類實現工廠介面,返回的也是乙個抽象的產品。關鍵 建立過程在其子類執行。步驟 建立乙個介面 形狀sh...