學(xué)習(xí)設(shè)計(jì)模式之我見(轉(zhuǎn))
Posted on 2007-10-12 16:02 Jaunt 閱讀(294) 評(píng)論(0) 編輯 收藏 所屬分類: 設(shè)計(jì)模式(java) 設(shè)計(jì)模式做為程序員的“內(nèi)功心法”,越來(lái)越受到.net 社區(qū)的重視,這種變化是很可喜的,Java社區(qū)走在了我們的前面,但這種狀況也許有一天會(huì)發(fā)生改變。
在學(xué)習(xí)模式時(shí),兩種聲音是一定會(huì)遇到的:
1、“無(wú)招勝有招,無(wú)招才是最高境界”;
2、“過分設(shè)計(jì)”。
這兩種聲音都是正確的,但如果初學(xué)模式者就惦記著這兩條,卻未必對(duì)你的學(xué)習(xí)和成長(zhǎng)有利。
“無(wú)招論”者,強(qiáng)調(diào)設(shè)計(jì)原則是精髓,各種模式只是實(shí)招,做為一個(gè)高手,應(yīng)得其髓,忘其招,決勝于隨機(jī)應(yīng)變中,于千變?nèi)f化隨心所欲中。此論調(diào)十分之正確,軟 件工程的巨人們歸納的設(shè)計(jì)原則是優(yōu)秀軟件工程的內(nèi)在規(guī)律,模式是種種原則的具化,學(xué)模式者十分應(yīng)該得此髓,特別是那些在每種模式中都能看到的原則,更應(yīng)將 你的思維與之絞合。
但初學(xué)者,請(qǐng)想想“你是武林高手了嗎”先,在沒有深入了解和體味了23種設(shè)計(jì)模式之前,你可以知道諸多設(shè)計(jì)原則,但你未必知道在設(shè)計(jì)中怎樣去實(shí)現(xiàn)這些原則,怎樣去結(jié)合這些原則。
“模式”就是模式,名字就意味著是“死”的東西,你還沒有“入死”,就想著“出生”了,未免有超前之嫌。
“過分設(shè)計(jì)”論是典型的以辨證法從另一個(gè)方面思考模式的使用。辨證法太偉大了,幾乎可以應(yīng)用于所有的事情,當(dāng)然它應(yīng)用于設(shè)計(jì)模式也是合適的,“過分設(shè)計(jì)”也是一種正確和健康的觀點(diǎn)。
不過就我的觀察,生活中兩種人比較喜歡使用辨證法,一種是有豐富經(jīng)驗(yàn)的專家,一種是對(duì)一件事情根本沒有深入根本不怎么了解的人。專家使用辨證法來(lái)看問題, 使得他更“專家”,另一種人,就像一個(gè)還不會(huì)走路的小孩在想著“我不能跑得太快,會(huì)摔跤的”----不論他想得對(duì)不對(duì),但這種想法于他學(xué)走路是絲毫無(wú)益處 的。
“過分設(shè)計(jì)”還是等到你真的覺得“過分”了的時(shí)候再去想吧,你還“設(shè)計(jì)不足”呢,就想著“過分設(shè)計(jì)”為哪般呢?
還有些人,視設(shè)計(jì)模式為條條框框,與自己”熱愛民主與自由”的理想相去甚遠(yuǎn),但唐朝已去,李白不在,天馬行空未必能有“飛流直下三千尺”的成就,還是老老實(shí)實(shí),腳踏實(shí)地,先扶著墻走穩(wěn)了先。
在學(xué)習(xí)模式時(shí),兩種聲音是一定會(huì)遇到的:
1、“無(wú)招勝有招,無(wú)招才是最高境界”;
2、“過分設(shè)計(jì)”。
這兩種聲音都是正確的,但如果初學(xué)模式者就惦記著這兩條,卻未必對(duì)你的學(xué)習(xí)和成長(zhǎng)有利。
“無(wú)招論”者,強(qiáng)調(diào)設(shè)計(jì)原則是精髓,各種模式只是實(shí)招,做為一個(gè)高手,應(yīng)得其髓,忘其招,決勝于隨機(jī)應(yīng)變中,于千變?nèi)f化隨心所欲中。此論調(diào)十分之正確,軟 件工程的巨人們歸納的設(shè)計(jì)原則是優(yōu)秀軟件工程的內(nèi)在規(guī)律,模式是種種原則的具化,學(xué)模式者十分應(yīng)該得此髓,特別是那些在每種模式中都能看到的原則,更應(yīng)將 你的思維與之絞合。
但初學(xué)者,請(qǐng)想想“你是武林高手了嗎”先,在沒有深入了解和體味了23種設(shè)計(jì)模式之前,你可以知道諸多設(shè)計(jì)原則,但你未必知道在設(shè)計(jì)中怎樣去實(shí)現(xiàn)這些原則,怎樣去結(jié)合這些原則。
“模式”就是模式,名字就意味著是“死”的東西,你還沒有“入死”,就想著“出生”了,未免有超前之嫌。
“過分設(shè)計(jì)”論是典型的以辨證法從另一個(gè)方面思考模式的使用。辨證法太偉大了,幾乎可以應(yīng)用于所有的事情,當(dāng)然它應(yīng)用于設(shè)計(jì)模式也是合適的,“過分設(shè)計(jì)”也是一種正確和健康的觀點(diǎn)。
不過就我的觀察,生活中兩種人比較喜歡使用辨證法,一種是有豐富經(jīng)驗(yàn)的專家,一種是對(duì)一件事情根本沒有深入根本不怎么了解的人。專家使用辨證法來(lái)看問題, 使得他更“專家”,另一種人,就像一個(gè)還不會(huì)走路的小孩在想著“我不能跑得太快,會(huì)摔跤的”----不論他想得對(duì)不對(duì),但這種想法于他學(xué)走路是絲毫無(wú)益處 的。
“過分設(shè)計(jì)”還是等到你真的覺得“過分”了的時(shí)候再去想吧,你還“設(shè)計(jì)不足”呢,就想著“過分設(shè)計(jì)”為哪般呢?
還有些人,視設(shè)計(jì)模式為條條框框,與自己”熱愛民主與自由”的理想相去甚遠(yuǎn),但唐朝已去,李白不在,天馬行空未必能有“飛流直下三千尺”的成就,還是老老實(shí)實(shí),腳踏實(shí)地,先扶著墻走穩(wěn)了先。