寫作背景:
一直在看關於設計模式的書並不斷的實際工作中努力實踐,同時也看到了播客園上設計模式
團隊文章熱火朝天的研究和討論。心裡非常高興,在國內設計模式的研究和使用還不是很豐富和
完善的今天,這種討論無疑會對每個園中的個體還是播客園整體實體的提公升有著重大的意義,我
非常希望以後想研究.net程式的人只要知道兩個**就能完成工作中90% 的知識查詢,乙個是微
軟的msdn,乙個就是播客園。
接上文..
第三重: [無模式]
這裡我說的無模式,不是當「壓根就沒有模式」講。相反,這是乙個無窮量,就像我們在大
學時使用的limit 極限一樣。這一層面上永遠沒有終點,一切只是像座標軸一樣,只有原點,沒
有終點。另外,當年張三丰教張無忌太極拳時對張無忌說的,什麼時候全忘了,什麼時候就全會
了。因為只有滿足了應用需求的軟體才是好軟體,而使用什麼設計模式,那是只有程式設計師才關心
的事。當你在設計中遇到了問題,在多年經驗的基礎上,寫出了高度可擴充套件,靈活,效率高,bug
極少的軟體時,而此時設計模式只是被無形中應用於開發過程裡。這時你會不知不覺就使用了設
計模式中的思想和好處,而這一切只是基於你的開發習慣,也許只有到這一步才是真正的「融會
貫通」了。
向這這一段轉型的前提是你無數次不斷的實際和思考以往的設計,同時應多看看別人的成果,
特別是多看一些開源的大專案,至少我知道像 spring,structs,hibernate, castle等,其實但凡大的應
用程式框架都會使用設計模式。看一下別人的應用和觀點,也是加速自己成功的催化劑。如果沒
太多的時間也可以先從幾個簡單的模式入手,不斷重複第一和第二重模式,直到成精。因為設計
模式之前是有著一定關聯的,只要能做到觸類旁通也不失為一種成功。
舉個例子,令狐沖大俠在一開始學習獨孤九劍時也只是「破劍式」用的還勉強讓風清楊看得
過去,原因就是因為令狐沖在華山時學的就是劍。專業如此,自然學習了要快一些,但是當後來
跟封不平,任我行對劍時,劍法越來越好,原因就是不斷練習外加天資過人,所謂「觸類旁通」
不過如此。有時我在想,金庸先生也許更適合做程式設計師,因為他所說的獨孤九劍的模式非常像是
設計模式上的思想。
現在獨孤九劍要旨發布於此,以博大家一笑
:獨孤九劍,有進無退!招招都是進攻,攻敵之不得不守。雖只一劍一式,卻是變化無
窮,學到後來,前後式融會貫通,更是威力大增,劍法的精要所在:「料敵機先」。
而這最後一句「料敵機先」,就像我們在設計系統時做需求一樣,如果能最大程度知道需求,
完全可以做了先知。(本人無意在客戶當前敵人)
1 設計模式與應用框架的關係。
一開始看到大型框架是ace,是乙個在國外有十多年開發歷史,時間上可以linux同日而語
的應用程式網路通訊框架,原作者是doug schmidt,中文譯者是馬維達[翻譯水平直追候捷]。
ace就是 adapter communication envirment 介面卡通訊環境。只不過它使用的開始語言是c++,但是裡
面的設計模式使用思想絕對是當時非常先進的。它用的模式有bridge,facade,abstract factory ,
templete method,adapter 等等,正是由於模式的使用,使系統能夠輕而易舉的進行網路開發。即
使有什麼需求變數,也只是改寫很少的**(有時僅一行)即可。框架是學習設計模式不能再好
的參考了,因為這是經過千捶百煉的**。
2 不要為了設計模式而使用設計模式[避免設計過度]。
3 設計模式在使用時要有使用的背景,如不清楚要參考四人幫的模式設計意圖。
4 不同的人有不同的解決問題的方法,因為模式的使用與要解決的問題本質上是n:n的關係。
只要能優雅的解決問題,那個設計模式用的就是對的,這就是我的觀點。如果別人用了與
我不同的模式也不要緊,因為條條大路通羅馬。同時模式也不是只能運用於某一特點場景,不用
抹殺它的通用性,因為在四人幫出的那本書中,也是用盡可能抽象和清晰的語方來闡述設計意思
的。而不是說只能用於某特點場合,如銀行結算,計費統計,財務報表等。
5 模式的本質是要讓你程式中的不變部分去藕合使用者經常變化的需求。
6 模式也在不斷發展和變化。
比如說眼下比較熱的像aop,ioc,依賴注入等,其設計主旨或多或少都有些設計模式上的
影子。當我們熟悉了那23種模式後,再來看這個東西,你肯定會有似曾相識的感覺,原因就在於
模式的不斷發展和變化。
侃的夠多了,到此為止了,對不住大家的眼睛了:)。
全文完。。。
設計模式三重天 之一
寫作背景 一直在看關於設計模式的書並不斷的實際工作中努力實踐,同時也看到了播客園上設計模式 團隊文章熱火朝天的研究和討論。心裡非常高興,在國內設計模式的研究和使用還不是很豐富和 完善的今天,這種討論無疑會對每個園中的個體還是播客園整體實體的提公升有著重大的意義,我 非常希望以後想研究.net程式的人...
設計模式 之 三
一 單例模式 飽漢模式public class singlepattern2 return sp 餓漢模式public class singlepattern1 兩種模式差別在有沒有在類被載入時就給建立好物件,餓漢 即等不及了要吃東西所以要提前建立好物件,飽漢 正好相反 二 模板方法 給出演算法的骨...
UI「三重天」之appium(一)
這樣可以在ios,android和windows測試套件之間重用 我們無論在做什麼測試,首先要考慮的便是該工具 框架 是否真的適合自己的業務,自己的需求 顯然跨平台的優點是首選,和之前的jmeter是一樣的。我們不能被工具 框架 限制。客戶端 伺服器架構 會話 自動化始終在會話的上下文中執行。客戶端...