程序員關於設計模式學習心得
程序員關於設計模式學習心得
設計模式,每一個稍有經驗的程序員應該都比較熟悉的一個詞彙。我第一次聽到這個詞,記得是參加工作第一年時聽一個前輩說起的,當時他還推薦了一本書,大話設計模式。當時對這個概念並不是很重視。典型的新手思維,心裏想,無非是綜合運用抽象、繼承、多態等特性,把這些特性玩溜了,設計模式手到擒來。現在想來,自己真是天真,無知。掌握了面向對象的抽象、繼承、多態等特性並不意味着就能掌握設計模式,寫出結構優良,易於擴展、維護的代碼。面向對象技術僅僅是設計模式的實現技術基礎。而設計模式是一套面向對象編程的經驗,是許多軟件行業的前輩長時間的艱苦努力總結出來的,是值得我們好好研究,好好學習,值得在工程實踐中探索應用的。
使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。二十幾種設計模式中,常用的有十幾種,學習理解這些模式也許不是特別困難的事情,但是難點在於如何學以致用,在實際的工作中如何使用這些模式,或者說如何使用設計模式令我們的工作受益。以下從設計模式使用誤區和如何有效在工作中使用設計模式兩方面談一談自己的一些想法。
爲了使用設計模式而是用設計模式,是最得不償失的一種觀念。類似的描述是過度設計,對代碼進行了過多的面向未來的設計,進行了不必要的抽象封裝,爲系統增加了不必要的複雜度。這是不值當的。當然,更多的情況是沒有運用設計模式進行恰當的封裝,使得產品功能的迭代進行的非常困難,甚至需要重構代碼才能繼續進行下去。
關於如何在工作中更有效的使用設計模式,下面談一下自己的一點想法。首先要從使用設計模式的目的說起:代碼可重用。如果代碼可重用性比較良好,那麼需求有新的變化或者增加,我們只需更改少許的代碼便可實現新的需求,開發測試工作量都會相應的減少,這是設計模式帶來的好處。那麼如何做到代碼可重用呢?個人認爲,首先要從產品需求分析做起。與產品確定產品現有功能點,以及將來的產品規劃,確定變化與穩定點,這是進行設計模式設計的基礎。另外開發人員要深入領會掌握設計模式技巧,做到“心中有劍”。最後,對於經驗尚淺到的程序員,不要想着一蹴而就,有時候設計模式是迭代的結果。
最後結合近期水電佈線功能,反思一下如何能夠更好地實現該模塊。對於點對點佈線算法子模塊,由於強電,給水,算法存在一些差異(當然在該模塊開發之前,並沒有對此進行深入的調研),但是目前來看差異並未達到完全沒有關聯的地步,或許可以採用裝飾模式:強電走線算法作爲基礎Component,給水在強電外包一層給水獨有的算法,然後再調用強電走線算法(目前使用的是靜態方法,大體也是在強電外包了一層給水走線算法),由於排水,弱電走線規則還不確定,所以該方案是否可行,還需要調研。當然也可以使用策略模式,將幾種走線算法徹底區分開來,但代碼或許存在冗餘。對於界面交互,目前來看,各個佈線模式,數據初始化,連線規則,交互提示都是變化的地方,可以用策略模式加以解決,這樣就可以不用經常修改Operation類了。
-
保險公司工作的心得多篇
保險公司工作的心得篇1回顧我來到公司已經不知不覺一年了,在年終總結我xxx年辦公室內勤的崗位工作,我深切感受到,辦公室是一個單位或企業的樞紐,起着承上啓下、綜合協調、參謀助手、督促檢查和服務保障大家工作安全的作用。內勤則是辦公室的內部勤務人員,負責辦公室...
-
老師工作心得感悟多篇
老師工作心得感悟篇1光陰如梭,忙忙碌碌的一年很快過去了,回顧20__年的工作心得主要有以下幾點:一、注重師德師風建設本人平時能認真學習時事政治,學習各項規章制度,能準時參加學校的政治學習,工作中,具有高度的責任心、嚴謹的工作作風和良好的師德修養,熱愛和關心全體...
-
倉管工作心得多篇
倉管工作心得篇1時間過得真快,轉眼20__年即將過去,在工作的這段時間裏我也學會了很多知識,讓我感覺到要做好每件事只要用心去學一定會成功!作爲一名倉管員,我非常清楚自己的崗位職責,也是嚴格在照此執行。在20__年來臨之際,回顧20__年的工作具體總結如下:1.負責倉庫各...
-
女職工工作的心得體會多篇
女職工工作的心得體會範文篇1酒店生意越做越紅火,各項經濟指標均超同期,實現時間過半,任務過半,爲圓滿完成全年營銷目標打下堅實的基矗接下來讓我們一起來看看這篇上半年工作總結的內容吧~20__年上半年,酒店營銷部在全體員工共同努力,大家心往一處想,勁往一處使,積極拓...