抽象工廠模式是工廠方法模式的進一步推廣。它的定義是:spring
提供一個建立一系列相關或相互依賴對象的接口,而無需指定它們的具體類。spa
抽象工廠的使用場景以下:對象
客戶端不關心產品類實例如何被建立、組合和表達的細節。這一條對於全部的工廠模式都是重要的;接口
這個系統的產品有多於一個的產品族,而系統只消費其中某一族的產品,這是抽象工廠的原始定義;產品
系統提供一個產品類的庫,全部的產品以一樣的接口出現,從而使客戶端不依賴於實現。方法
在本文舉例中,會出現蒙牛牛奶、蒙牛酸奶,伊利牛奶、伊利酸奶等產品,而蒙牛的牛奶和酸奶就是一個產品族。蒙牛專賣店只消費蒙牛產品族而不會消費伊利的產品族。客戶端
抽象工廠的通常組成:block
抽象工廠、具體工廠、產品族。工廠模式
本文會演示抽象工廠的實例以及與其它工廠模式的對比,以及spring中如何應用工廠模式。實例
業務場景
每個奶製品專賣店都要進屬於本身的產品族,例如蒙牛專賣店消費蒙牛產品族,伊利專賣店消費伊利產品族。