網站首頁 個人文檔 個人總結 工作總結 述職報告 心得體會 演講稿 講話致辭 實用文 教學資源 企業文化 公文 論文

程序員關於設計模式學習心得

欄目: 工作心得體會 / 發佈於: / 人氣:2.79W

程序員關於設計模式學習心得

程序員關於設計模式學習心得

設計模式,每一個稍有經驗的程序員應該都比較熟悉的一個詞彙。我第一次聽到這個詞,記得是參加工作第一年時聽一個前輩説起的,當時他還推薦了一本書,大話設計模式。當時對這個概念並不是很重視。典型的新手思維,心裏想,無非是綜合運用抽象、繼承、多態等特性,把這些特性玩溜了,設計模式手到擒來。現在想來,自己真是天真,無知。掌握了面向對象的抽象、繼承、多態等特性並不意味着就能掌握設計模式,寫出結構優良,易於擴展、維護的代碼。面向對象技術僅僅是設計模式的實現技術基礎。而設計模式是一套面向對象編程的經驗,是許多軟件行業的前輩長時間的艱苦努力總結出來的,是值得我們好好研究,好好學習,值得在工程實踐中探索應用的。

使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。二十幾種設計模式中,常用的有十幾種,學習理解這些模式也許不是特別困難的事情,但是難點在於如何學以致用,在實際的工作中如何使用這些模式,或者説如何使用設計模式令我們的工作受益。以下從設計模式使用誤區和如何有效在工作中使用設計模式兩方面談一談自己的一些想法。

為了使用設計模式而是用設計模式,是最得不償失的一種觀念。類似的描述是過度設計,對代碼進行了過多的面向未來的設計,進行了不必要的抽象封裝,為系統增加了不必要的複雜度。這是不值當的。當然,更多的情況是沒有運用設計模式進行恰當的封裝,使得產品功能的迭代進行的非常困難,甚至需要重構代碼才能繼續進行下去。

關於如何在工作中更有效的使用設計模式,下面談一下自己的一點想法。首先要從使用設計模式的目的説起:代碼可重用。如果代碼可重用性比較良好,那麼需求有新的變化或者增加,我們只需更改少許的代碼便可實現新的需求,開發測試工作量都會相應的減少,這是設計模式帶來的好處。那麼如何做到代碼可重用呢?個人認為,首先要從產品需求分析做起。與產品確定產品現有功能點,以及將來的產品規劃,確定變化與穩定點,這是進行設計模式設計的基礎。另外開發人員要深入領會掌握設計模式技巧,做到“心中有劍”。最後,對於經驗尚淺到的程序員,不要想着一蹴而就,有時候設計模式是迭代的結果。

最後結合近期水電佈線功能,反思一下如何能夠更好地實現該模塊。對於點對點佈線算法子模塊,由於強電,給水,算法存在一些差異(當然在該模塊開發之前,並沒有對此進行深入的調研),但是目前來看差異並未達到完全沒有關聯的地步,或許可以採用裝飾模式:強電走線算法作為基礎Component,給水在強電外包一層給水獨有的算法,然後再調用強電走線算法(目前使用的是靜態方法,大體也是在強電外包了一層給水走線算法),由於排水,弱電走線規則還不確定,所以該方案是否可行,還需要調研。當然也可以使用策略模式,將幾種走線算法徹底區分開來,但代碼或許存在宂餘。對於界面交互,目前來看,各個佈線模式,數據初始化,連線規則,交互提示都是變化的地方,可以用策略模式加以解決,這樣就可以不用經常修改Operation類了。