轉(zhuǎn)自:https://www.zhihu.com/question/20367734/answer/115807228
簡(jiǎn)單工廠模式不是23種里的一種,簡(jiǎn)而言之,就是有一個(gè)專門(mén)生產(chǎn)某個(gè)產(chǎn)品的類。
比如下圖中的鼠標(biāo)工廠,專業(yè)生產(chǎn)鼠標(biāo),給參數(shù)0,生產(chǎn)戴爾鼠標(biāo),給參數(shù)1,生產(chǎn)惠普鼠標(biāo)。

工廠模式?
工廠模式也就是鼠標(biāo)工廠是個(gè)父類,有生產(chǎn)鼠標(biāo)這個(gè)接口。
戴爾鼠標(biāo)工廠,惠普鼠標(biāo)工廠繼承它,可以分別生產(chǎn)戴爾鼠標(biāo),惠普鼠標(biāo)。
生產(chǎn)哪種鼠標(biāo)不再由參數(shù)決定,而是創(chuàng)建鼠標(biāo)工廠時(shí),由戴爾鼠標(biāo)工廠創(chuàng)建。
后續(xù)直接調(diào)用鼠標(biāo)工廠.生產(chǎn)鼠標(biāo)()即可

抽象工廠模式?
抽象工廠模式也就是不僅生產(chǎn)鼠標(biāo),同時(shí)生產(chǎn)鍵盤(pán)。
也就是PC廠商是個(gè)父類,有生產(chǎn)鼠標(biāo),生產(chǎn)鍵盤(pán)兩個(gè)接口。
戴爾工廠,惠普工廠繼承它,可以分別生產(chǎn)戴爾鼠標(biāo)+戴爾鍵盤(pán),和惠普鼠標(biāo)+惠普鍵盤(pán)。
創(chuàng)建工廠時(shí),由戴爾工廠創(chuàng)建。
后續(xù)工廠.生產(chǎn)鼠標(biāo)()則生產(chǎn)戴爾鼠標(biāo),工廠.生產(chǎn)鍵盤(pán)()則生產(chǎn)戴爾鍵盤(pán)。

在抽象工廠模式中,假設(shè)我們需要增加一個(gè)工廠
假設(shè)我們?cè)黾尤A碩工廠,則我們需要增加華碩工廠,和戴爾工廠一樣,繼承PC廠商。
之后創(chuàng)建華碩鼠標(biāo),繼承鼠標(biāo)類。創(chuàng)建華碩鍵盤(pán),繼承鍵盤(pán)類。
即可。

在抽象工廠模式中,假設(shè)我們需要增加一個(gè)產(chǎn)品
假設(shè)我們?cè)黾佣溸@個(gè)產(chǎn)品,則首先我們需要增加耳麥這個(gè)父類,再加上戴爾耳麥,惠普耳麥這兩個(gè)子類。
之后在PC廠商這個(gè)父類中,增加生產(chǎn)耳麥的接口。最后在戴爾工廠,惠普工廠這兩個(gè)類中,分別實(shí)現(xiàn)生產(chǎn)戴爾耳麥,惠普耳麥的功能。
以上。
