在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ 簡(jiǎn)單工廠和工廠方法差異點(diǎn)——“簡(jiǎn)單工廠不能變更正在創(chuàng)建的產(chǎn)品”,這句話應(yīng)該怎么理

簡(jiǎn)單工廠和工廠方法差異點(diǎn)——“簡(jiǎn)單工廠不能變更正在創(chuàng)建的產(chǎn)品”,這句話應(yīng)該怎么理解?

在《Head First設(shè)計(jì)模式》中P135看到一段話

簡(jiǎn)單工廠的的做法,可以將對(duì)象的創(chuàng)建封裝起來(lái),但是簡(jiǎn)單工廠不具備工廠方法的彈性,因?yàn)楹?jiǎn)單工廠不能變更正在創(chuàng)建的產(chǎn)品。

在這句的理解上出現(xiàn)了一些問(wèn)題:

  1. “正在創(chuàng)建的產(chǎn)品”指代的是什么?
  2. 和朋友討論的時(shí)候,他是這樣理解上面那句話的——“簡(jiǎn)單工廠中,產(chǎn)品已經(jīng)寫死在簡(jiǎn)單工廠的方法中,而工廠方法模式中能夠通過(guò)增加子類來(lái)增加產(chǎn)品”。我不能理解的是,這樣不是每增加一個(gè)產(chǎn)品類型就要增加一個(gè)子類了嗎,這跟工廠方法的思想有出入。

希望能得到更多同道中人的意見(jiàn)!感謝!

回答
編輯回答
礙你眼

1.“正在創(chuàng)建的產(chǎn)品”指代的就是工廠中實(shí)際生產(chǎn)的產(chǎn)品。
2.朋友的理解大致上是正確的。在這里重新解釋一下,兩種工廠模式都能生成不同類型的產(chǎn)品ABC。之所以說(shuō)簡(jiǎn)單工廠彈性較差是因?yàn)槿绻黾赢a(chǎn)品D的時(shí)候,必須修改原來(lái)工廠的方法,可能會(huì)影響到產(chǎn)品AB。而工廠方法模式中,只要增加制造產(chǎn)品D的相關(guān)子類就行,不會(huì)對(duì)其他產(chǎn)品產(chǎn)生影響。

設(shè)計(jì)模式中其中的一個(gè)設(shè)計(jì)原則——“對(duì)擴(kuò)展開(kāi)發(fā),對(duì)修改關(guān)閉”,說(shuō)的就是這種情況。

2018年2月6日 05:25