抽象工廠模式(Abstract Factory)

2021-04-01 16:35:04 字數 1644 閱讀 9465

提供乙個建立一系列相關或相互依賴的物件的介面,而不需指定它們具體的類。

通常在run-time

式建立乙個

concreatefactory

類的單體例項。這個

concretefactory

建立concreteproduct

物件。為了建立不同的

concreteproduct

物件,clients

需要使用不同的

concretefactory

abstractfactory

(continentfactory

)定義乙個介面,用來建立抽象

products

。concretefactory

(afrciafactory,americafactory

)實現建立具體的

products

。abstractproduct

(herbivore

,carnivore

)宣告乙個介面表示一種

product

型別product

(wildebeest

,lion

,bison

,wolf

)定義被相關

concrete factory

建立的product

物件實現

abstractproduct

介面client

(animalworld)使用

abstractfactory

和abstractproduct

類**:

//abstractfactory

public inte***ce continentfactory

//concretefactory

public class africafactory implements continentfactory

public carnivore createcarnivore()

}public class americafactory implements continentfactory

public carnivore createcarnivore()

}//abstractproduct

public inte***ce herbivore

public inte***cecarnivore

//product

public class wildebeest implements herbivore

public class lion implements carnivore

}public class bison implements herbivore

public class wolf implements carnivore

}//client

public class animalworld

//mehtods

public void runfoodchain()

public static voidmain(string args)

output

lion eats wildebeest

wolf eats bison

抽象工廠模式 抽象工廠模式

抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...

工廠模式 抽象工廠模式

這裡使用簡單的話來講解工廠模式,不涉及程式設計 什麼是工廠模式呢?我的理解是對抽象介面例項的封裝。假如有乙個介面,有若干的實現類,代表不同的例項。傳統產生物件的方法是直接new乙個出來,對於每個例項都要new,當實現介面的類較多時會很麻煩,並且類的實現也暴露出來了。工廠模式是一種產生物件的模式,使用...

工廠模式 抽象工廠模式

子類父類代換 場景 在不同的條件下,需要建立不同的實現子類時。如網路通訊可以使用tcp udp。可以實現同乙個介面,通過工廠類根據條件 tcp或udp 來例項化不同的子類。這些子類符合黎克特制代換原則。public inte ce tlprotocol public class tcpimpleme...