上次講解了簡單工廠模式與工廠方法模式的區別,這次又學習了一種抽象工廠模式,我覺得也可以跟他們進行聯絡起來。這次就來講解抽象工廠模式與他們的區別。
上次說了從簡單工廠模式到工廠方法模式的轉換,這次看一下從工廠方法模式到抽象工廠模式的過渡。
抽象工廠模式:提供乙個建立一系列相關或想相互依賴物件的介面而無需制定它們具體的類。與方法工廠模式非常的相似,只不過方法工廠模式只是限於乙個產品族,而抽象工廠方法模式涉及到多個產品族。
舉例:工廠方法模式:有兩家公司同時生產轎車,在這裡「轎車」就是「抽象產品類」,具體的產品就是「現在,豐田」。工廠抽象介面就是「公司」,具體的工廠就是「現在汽車集團,豐田汽車公司」。**結構:
**顯示:
//轎車類
public class car
//具體轎車類
class xiandaicar:car
}class fengtiancar : car
}
//公司介面
inte***ce company
//現代汽車公司工廠
class xiandaicompanyfactory:company
} //豐田汽車公司工廠
class fengtiancompanyfactory:company
}
客戶端**:
static void main(string args)
結果顯示:
抽象工廠模式舉例:如果這兩個公司不止生產轎車還生產貨車,這時候就用抽象工廠模式。**結構圖:
//轎車類
public class car
}
//貨車類
public class truck
}
//具體轎車類
class xiandaicar:car
}class fengtiancar : car
}
//具體貨車類
class xiandaitruck:truck
}class fengtiantruck : truck
客戶端**:
static void main(string args)
結果顯示:
從上例可以看出,抽象工廠模式比工廠方法模式多了乙個產品族
(貨車),所以工廠方法模式用於生產乙個產品族,而抽象工廠模式用於生產多個產品族(產品系列)的時候。
總結:抽象工廠模式:用於生產不用產品族(產品系列)的全部產品。對於增加新的產品不利於擴充套件,但是支援增加多個產品族。
抽象工廠模式 抽象工廠模式
抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...
工廠模式 抽象工廠模式
這裡使用簡單的話來講解工廠模式,不涉及程式設計 什麼是工廠模式呢?我的理解是對抽象介面例項的封裝。假如有乙個介面,有若干的實現類,代表不同的例項。傳統產生物件的方法是直接new乙個出來,對於每個例項都要new,當實現介面的類較多時會很麻煩,並且類的實現也暴露出來了。工廠模式是一種產生物件的模式,使用...
工廠模式 抽象工廠模式
子類父類代換 場景 在不同的條件下,需要建立不同的實現子類時。如網路通訊可以使用tcp udp。可以實現同乙個介面,通過工廠類根據條件 tcp或udp 來例項化不同的子類。這些子類符合黎克特制代換原則。public inte ce tlprotocol public class tcpimpleme...