工廠模式 抽象工廠模式

2021-10-01 12:35:04 字數 1482 閱讀 6095

工廠模式

抽象工廠模式

定義定義乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。這滿足建立型模式中所要求的「建立與使用相分離」的特點。

是一種為訪問類提供乙個建立一組相關或相互依賴物件的介面,且訪問類無須指定所要產品的具體類就能得到同族的不同等級的產品的模式結構。

優點缺點

每增加乙個產品就要增加乙個具體產品類和乙個對應的具體工廠類,這增加了系統的複雜度。

當產品族中需要增加乙個新的產品時,所有的工廠類都需要進行修改。

區別工廠模式的乙個具體工廠只生產乙個產品,抽象工廠模式的乙個具體工廠生產多個產品,抽象工廠模式只生產乙個產品的時候可退化為工廠模式

工廠方法模式的主要角色如下。

抽象工廠(abstract factory):提供了建立產品的介面,呼叫者通過它訪問具體工廠的工廠方法 newproduct() 來建立產品。

具體工廠(concretefactory):主要是實現抽象工廠中的抽象方法,完成具體產品的建立。

抽象產品(product):定義了產品的規範,描述了產品的主要特性和功能。

具體產品(concreteproduct):實現了抽象產品角色所定義的介面,由具體工廠來建立,它同具體工廠之間一一對應。

抽象工廠模式的主要角色如下。

抽象工廠(abstract factory):提供了建立產品的介面,它包含多個建立產品的方法 newproduct(),可以建立多個不同等級的產品。

具體工廠(concrete factory):主要是實現抽象工廠中的多個抽象方法,完成具體產品的建立。

抽象產品(product):定義了產品的規範,描述了產品的主要特性和功能,抽象工廠模式有多個抽象產品。

具體產品(concreteproduct):實現了抽象產品角色所定義的介面,由具體工廠來建立,它 同具體工廠之間是多對一的關係。

//產品抽象類

public inte***ce animal

//產品實現類

public class cat implements animal

}//產品實現類

public class dog implements animal

}//工廠抽象類

public inte***ce animalfactory

//工廠實現類

public class animalfactoryimpl implements animalfactory

@override

public cat createcat()

@override

public dog createdog()

}

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

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

工廠模式 抽象工廠模式

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

工廠模式 抽象工廠模式

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