抽象工廠模式的結構圖以下:對象
讀者注意到我在這個結構圖上畫了一個藍色的方框,畫出這個方框的緣由是這個框裏的結構就是一個典型的工廠模式(FACTORY METHOD)。這樣來看抽象工廠模式就變得簡單了,只是在工廠模式的基礎上拓展了product的種類。既然做爲工廠模式的拓展,工廠模式全部的優勢都能被抽象工廠模式徹底的繼承了。關於工廠方法模式的優勢這裏再也不贅述,讀者能夠參考工廠方法模式。那麼對於抽象工廠模式,gof是怎麼定義的呢?blog
「提供一個建立一系列相關或相互依賴對象的接口,而無需指定它們具體的類。」繼承
注意到這裏強調了一系列的,這裏的一系列對象是指有不一樣父類的子類(product)。經過引入的creator抽象,能夠按照用戶所需生成一系列product,以此來知足用戶的需求。能夠很明確的是工廠方法模式和抽象工廠模式的需求背景是不一樣的。工廠方法模式強調整個系統的可拓展性,抽象工廠方法強調須要生成一系列的產品的狀況。固然抽象工廠方法也是部分可拓展的,起碼在用戶需求變化只侷限於生成的product子類不一樣時。接口