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

程式設計師關於設計模式學習心得

欄目: 工作心得體會 / 釋出於: / 人氣:2.79W

程式設計師關於設計模式學習心得

程式設計師關於設計模式學習心得

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

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

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

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

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