抽象工廠模式提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。抽象工廠模式(abstract factory pattern)是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。
在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式提供物件。
在抽象工廠模式中我們不只是生產乙個單一的產品,而是提供了多個產品族的生產。所謂產品族,指的是位於不同產品等級結構(工廠方法模式提供的一系類產品可以稱為乙個等級結構)中功能相關聯的產品組成的家族。抽象工廠模式所提供的一系類產品就組成乙個產品族
**示例
/**
* 各種處理器的介面
*/public
inte***ce
processor
/** * 用於生產高階處理器
*/class
hightprocessor
implements
processor
}class
lowprocessor
implements
processor
}
/**
* 各種記憶體的介面
*/public
inte***ce
memory
/** * 8g記憶體
*/class
hightmemory
implements
memory
}/**
* 1g記憶體
*/class
lowmemory
implements
memory
}
/**
* 各種電量儲存的
*/public
inte***ce
electric
/** * 大容量電池
*/class
hightelectric
implements
electric
}/**
* 小容量電池
*/class
lowelectric
implements
electric
}
/**
* 手機工廠介面
*/public
inte***ce
phonefactory
/** * 高階手機生產工廠
*/class
hightphonefactory
implements
phonefactory
@override
public memory creatememory()
@override
public electric createelectric()
}/**
* 低端手機生產工廠
*/class
lowphonefactory
implements
phonefactory
@override
public memory creatememory()
@override
public electric createelectric()
}
抽象工廠建好了,那我們試著使用一下
public
class
client
}
執行結果為
大容量電池
搭載8g記憶體
這是一塊高階處理器
====
====
====
====
====
====
*****==
小容量電池
搭載1g記憶體
這是一塊低端處理器
抽象工廠模式相比工廠方法模式更加複雜,但是負責相比方法工廠模式有了更多的選擇,以及有了產品族的概念,使得建立之後的收益更加可觀,但是抽象工廠模式只能支援以一整個產品族的增加,而對於單個產品的增加顯得無可奈何,所以在選擇工廠模式的使用的時候也要根據工程的實際需要,選擇最適合的工廠模式 抽象工廠模式 抽象工廠模式
抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...
工廠模式 抽象工廠模式
這裡使用簡單的話來講解工廠模式,不涉及程式設計 什麼是工廠模式呢?我的理解是對抽象介面例項的封裝。假如有乙個介面,有若干的實現類,代表不同的例項。傳統產生物件的方法是直接new乙個出來,對於每個例項都要new,當實現介面的類較多時會很麻煩,並且類的實現也暴露出來了。工廠模式是一種產生物件的模式,使用...
工廠模式 抽象工廠模式
子類父類代換 場景 在不同的條件下,需要建立不同的實現子類時。如網路通訊可以使用tcp udp。可以實現同乙個介面,通過工廠類根據條件 tcp或udp 來例項化不同的子類。這些子類符合黎克特制代換原則。public inte ce tlprotocol public class tcpimpleme...