引言
最近發現一篇講解工廠模式比較簡易明了的文章,內容如下,原文連接為:http://www.runoob.com/design-pattern/abstract-factory-pattern.html。
簡單工廠模式
簡單工廠模式不是 23 種里的一種,簡而言之,就是有一個專門生產某個產品的類。
比如下圖中的鼠標工廠,專業生產鼠標,給參數 0,生產戴爾鼠標,給參數 1,生產惠普鼠標。
工廠模式
工廠模式也就是鼠標工廠是個父類,有生產鼠標這個接口。
戴爾鼠標工廠,惠普鼠標工廠繼承它,可以分別生產戴爾鼠標,惠普鼠標。
生產哪種鼠標不再由參數決定,而是創建鼠標工廠時,由戴爾鼠標工廠創建。
后續直接調用鼠標工廠.生產鼠標()即可
抽象工廠模式
抽象工廠模式也就是不僅生產鼠標,同時生產鍵盤。
也就是 PC 廠商是個父類,有生產鼠標,生產鍵盤兩個接口。
戴爾工廠,惠普工廠繼承它,可以分別生產戴爾鼠標+戴爾鍵盤,和惠普鼠標+惠普鍵盤。
創建工廠時,由戴爾工廠創建。
后續工廠.生產鼠標()則生產戴爾鼠標,工廠.生產鍵盤()則生產戴爾鍵盤。
在抽象工廠模式中,假設我們需要增加一個工廠
假設我們增加華碩工廠,則我們需要增加華碩工廠,和戴爾工廠一樣,繼承 PC 廠商。
之后創建華碩鼠標,繼承鼠標類。創建華碩鍵盤,繼承鍵盤類即可。
在抽象工廠模式中,假設我們需要增加一個產品
假設我們增加耳麥這個產品,則首先我們需要增加耳麥這個父類,再加上戴爾耳麥,惠普耳麥這兩個子類。
之后在PC廠商這個父類中,增加生產耳麥的接口。最后在戴爾工廠,惠普工廠這兩個類中,分別實現生產戴爾耳麥,惠普耳麥的功能。 以上。