抽象工廠模式

2021-09-12 19:58:57 字數 2186 閱讀 4273

抽象工廠模式提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。

抽象工廠模式(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...