2015-12-21 134 views
0

試圖找出工廠和抽象工廠之間的區別。爲什麼要使用抽象工廠

從我所瞭解的情況來看,當我想創建具有相同屬性但類型不同的對象時,我會使用一個工廠(例如 - 我想要有10匹馬,具有相同的重量,高度和年齡,但它們應該在名稱)。

因此,我創建了一個接口(或者可能是抽象類?),它已經處理了重量,高度和年齡,並且在我想創建一匹新馬的時候給它提供名稱。

假設我想爲馬添加顏色屬性。這是使用抽象工廠的一個很好的理由嗎?我會得到2個工廠 - 一個是黑馬,另一個是棕馬。它有任何意義嗎?

回答

1

抽象工廠模式圍繞創建一個工廠,建立其他工廠。所以當你有一個場景,你知道你想要構建馬匹,奶牛和MAYBE還有豬和羊來跟隨你的比喻時,你寧願使用它。鑑於他們都是農場動物,他們可能會分享很多財產,因此他們的工廠在某種意義上應該是相似的,所以你可以創建一個工廠工廠來生產一個骨架「農場動物工廠」。

從這裏你現在可以生產一個馬廠,牛廠和任何你需要的東西。

因此,基本上它進一步抽象了工廠的概念,以便您可以使用模板方式創建不僅對象,但會產生它們的工廠...