天天看小說

第228章

大B:“剛畢業的大學生面臨人生的這一大轉折。要好好準備,去迎接機遇與挑戰?,F在我們就來聊聊設計模式吧。學了這麼久的設計模式,你有什麼感想嗎?今天我們來總結一下設計模式吧!”

小A:“剛開始學習設計模式的時候,感到這些模式真的非常抽象。在設計過程中,我發現了很多設計模式的用處,也確實應用了很多設計模式,這讓我越來越感到設計模式的重要性?!?

大B:“設計模式是個好東西,它給出了很多設計中的技巧與思路,對於很多優秀的設計,加以總結與提煉。設計模式並非是人拍腦瓜想出來的,而是他們蒐集了其他人優秀的設計,加以整理出來的,他們不是這些模式的創造者,僅僅是整理者?!?

小A:“應用設計模式還給我們帶來了很多好處。”

大B:“是??!軟件將變得更加靈活,模塊之間的耦合度將會降低,效率會提升,開銷會減少。更重要的,設計模式就好像美聲唱法中的花腔,讓你的設計更加漂亮??偟膩碚f,設計模式似乎將軟件設計提升到藝術的層次。”

小A:“設計模式已經被廣泛的應用了,在現在很多的圖形界面框架都使用了MVC模式,大量跌代器模式的應用,徹底改變了我們對集合的操作方式。不僅如此,應用了設計模式的設計,往往被看成爲優秀的設計。這是因爲,這些設計模式都是久經考驗的。”

大B:“在學習和使用設計模式的時候,往往出現一個非常嚴重的誤區,那就是設計模式必須嚴格地遵守,不能修改。但是設計模式不是設計模型,並非一成不變。正相反,設計模式中最核心的要素並非設計的結構,而是設計的思想。只有掌握住設計模式的核心思想,才能正確、靈活的應用設計模式,否則再怎麼使用設計模式,也不過是生搬硬套?!?

小A:“當然!掌握設計模式的思想,關鍵是要仔細研究模式的意圖和結構。一個模式的意圖,就是使用這個設計模式的目的,體現了爲什麼要使用這個模式,也就是需求問題?!?

大B:“是??!這個模式的結構,就是如何去解決這個問題,是一種手段、一種經典的解決方法,這種解決方法只是一種建議。兩個方面結合起來,明白爲什麼需要設計模式,同時明白瞭如何實現這個模式,就容易抓住模式的本質思想?!?

大B:“在抓住意圖和結構的基礎上,實踐也是掌握設計模式的必要方法?!?

大B:“當然,設計模式必須在某個場景下得到應用纔有意義,這也是爲什麼要提供大量的例子用來說明模式的應用場景,這實際上是提供了一種上下文環境。學外語不是要強調‘語言環境’麼,學習設計模式也是這樣?!?

小A:“嗯!是的?!?

大B:“看到網上很多人在討論設計模式,他們確實很有創意,滿嘴都是模式的名字,恨不得寫個HelloWorld都要應用到設計模式。設計模式確實是好東西,但是,中國有句古話叫作物極必反,即便是按照辯證法,事物總要一分爲二的看?!?

小A:“是啊!我們說設計模式的目的是爲了讓軟件更加靈活,重用度更高。”

大B:“但是,某種意義上,設計模式增加了軟件維護的難度,特別是它增加了對象之間關聯的複雜度。”

小A:“嗯。對!”

大B:“我們總說,重用可以提高軟件開發的效率。如果你是大牛,你自然希望你的設計可以被反覆使用10000年,那就是:當世界毀滅的時候,你的設計依然存在。然而,現實是一個系統的設計往往在5年之內就會被拋棄,這是因爲:1、軟件技術產生了新的變化,使用新的技術進行的設計,無論如何都比你的設計好;2、硬件環境發生了很大變化,你的設計裡對開銷或者效率的追求已經沒有意義了;3、新的大牛出現了,並且取代了你的位置?!?

大B:“應用設計模式會導致設計週期的加長,因爲更復雜了,但是很多項目還在設計階段就已經胎死腹中,再好的設計也沒有發揮的餘地?!?

大B:“當我們向設計模式頂禮膜拜的時候,我們還必須清醒地看到軟件生產中非技術層面上的東西往往具有決定性作用。理想固然崇高,但現實總是殘酷的。如何看清理想與現實的界限,恐怕是需要我們在實踐中不斷磨礪而體會出來的。在看完設計模式後,不妨反問以下自己,這些模式究竟能給你帶來什麼?”

第107章第162章第194章第75章第15章第85章第172章第74章第153章第22章第89章第32章第109章第25章第29章第194章第132章第72章第100章第13章第178章第68章第5章第218章第190章第161章第60章第130章第227章第122章第127章第227章第188章第69章第7章第96章第20章第95章第111章第220章第162章第50章第110章第164章第149章第58章第147章第121章第114章第141章第138章第156章第228章第129章第167章第38章第8章第125章第163章第146章第123章第185章第124章第1章第142章第37章第170章第137章第151章第77章第41章第126章第55章第105章第160章第155章第188章第199章第162章第121章第50章第143章第207章第166章第106章第186章第138章第11章第141章第186章第219章第85章第122章第10章第106章第223章第166章第196章第149章第162章
第107章第162章第194章第75章第15章第85章第172章第74章第153章第22章第89章第32章第109章第25章第29章第194章第132章第72章第100章第13章第178章第68章第5章第218章第190章第161章第60章第130章第227章第122章第127章第227章第188章第69章第7章第96章第20章第95章第111章第220章第162章第50章第110章第164章第149章第58章第147章第121章第114章第141章第138章第156章第228章第129章第167章第38章第8章第125章第163章第146章第123章第185章第124章第1章第142章第37章第170章第137章第151章第77章第41章第126章第55章第105章第160章第155章第188章第199章第162章第121章第50章第143章第207章第166章第106章第186章第138章第11章第141章第186章第219章第85章第122章第10章第106章第223章第166章第196章第149章第162章
主站蜘蛛池模板: 定襄县| 卢氏县| 敦化市| 福州市| 隆化县| 琼结县| 丰台区| 扎赉特旗| 彭山县| 壤塘县| 威海市| 绥阳县| 峨山| 马公市| 乌兰察布市| 南涧| 灵丘县| 五台县| 文化| 横山县| 香格里拉县| 林西县| 昌江| 漳平市| 伊春市| 莎车县| 凤山县| 白城市| 丘北县| 白山市| 于田县| 永丰县| 康乐县| 土默特左旗| 合阳县| 斗六市| 鄂尔多斯市| 祁连县| 乾安县| 沅陵县| 武山县|