大话设计模式(十四 设计模式不能戏说!设计模式怎就不能戏说?)
(續(xù)上篇)
?????? ? 次日,小菜來到大鳥處。
?????? “大鳥,你在寫什么東西?”小菜看到大鳥的電腦上開著記事本。
?????? “哦,我打算寫篇博客,名字就叫《設(shè)計(jì)模式不能戲說?》”大鳥解釋道。
?????? “嘻嘻,廢話,這又不是電視劇《戲說XX》,可以亂講不負(fù)責(zé)任,設(shè)計(jì)模式戲說了如何講得清楚。怎么突然會(huì)想起來寫這樣的文章?”
?????? “你知道為什么《Head First Design Patterns》(深入淺出設(shè)計(jì)模式)一直沒有翻譯成中文嗎?”大鳥不答反問道。
?????? “不知道,這本書國外出版好久了吧,得了Jolt大獎(jiǎng)后,英文影印版在2005年國內(nèi)也有出版了,近三年來一直不見中文翻譯版本的出現(xiàn),我也很奇怪,里面的英文其實(shí)也不算太難呀。”
?????? “這就是因?yàn)樵趪鴥?nèi)有一種觀念,設(shè)計(jì)模式是不允許被戲說的!”
?????? “戲說?那本書里寫了很多生活中趣味的例子,又是鴨子又是匹薩店的,很有意思,我覺得這樣寫很生動(dòng),你指的戲說是這個(gè)?出版社不至于就因?yàn)檫@樣而不翻譯吧?”
????? “誰知道呢,反正沒出版我們只能自己去猜想原因了。”
????? “不如你把它翻譯了,去找出版社發(fā)吧,這書這么好,一定大大地有銷量。”
????? “小菜說得輕松。你可以想象一下這樣的場景:我通宵達(dá)旦、臥薪嘗膽、勵(lì)精圖治把這本書翻譯完,歡天喜地、興高采烈、手舞足蹈拿著稿子到了XX出版社,XX出版社的大編輯看了后說:‘大爺,您走錯(cuò)地兒了,到隔壁樓的出版社更合適一些。’于是我再懷著心神不寧、忐忑不安、焦急上火地跑到隔壁樓,卻被門衛(wèi)攔住,我抬頭一看門牌——頓時(shí)怒火中燒、單腳蹬地,破口罵娘!”
??????“你看到了什么?”
????? “兒童畫報(bào)社!”
?
????? “,大鳥,說相聲吶,搞笑呀!怎么可能呢?這書只不過圖文并茂,通俗易懂而已,講得可是實(shí)實(shí)在在的設(shè)計(jì)模式。”小菜大笑說道。
????? “怎么不可能,昨天一技術(shù)雜志社編輯找到我,說想和我約稿。我一想,最近教你的那些東西還很有意思的,也是我多年開發(fā)學(xué)習(xí)的經(jīng)驗(yàn)積累,寫寫也不錯(cuò)。我問他能不能寫成對(duì)話方式,他說不行,他們的雜志面向中高端用戶,文章需要中規(guī)中矩。我覺得這其實(shí)也不算難,于是就寫了一篇設(shè)計(jì)模式的文章。花了大半天時(shí)間,盡管去掉了以往對(duì)話中的調(diào)侃,算是很認(rèn)真的正統(tǒng)了一把。不過正所謂當(dāng)戲說已成習(xí)慣,想改都難。所以文章一給他看后,他很客氣的說,‘您寫得很認(rèn)真,但是非常抱歉,不能采用’。”大鳥情緒開始有些激動(dòng),“我強(qiáng)壓怒火,追問其原因,才得知是語言不專業(yè)、文章沒深度,問他如何才叫語言專業(yè),文章有深度。他給發(fā)了一篇樣稿。小菜你可以看看?”
?????? “《設(shè)計(jì)模式*************應(yīng)用》(省去標(biāo)題多字)”小菜望向屏幕,讀了文章標(biāo)題,掃了內(nèi)容一遍。
?????????…………
?????? “大鳥,這文章里面都是理論的東西,有點(diǎn)象論文,太深了,我看不太懂哦。”小菜實(shí)話實(shí)說,“不過,人家不是說了嗎,面向中高端用戶,我們這種菜鳥是沒能力看這文章的。”
?????? “哈,小菜也夠謙虛,這下你明白了吧,《Head First Design Patterns》是不能出中文版的,因?yàn)樗垢野讶绱松袷サ母呱畹脑O(shè)計(jì)模式,寫得如此通俗淺顯,連菜鳥都讀得懂,實(shí)在是太不給專家們面子了。”大鳥說,“當(dāng)然細(xì)細(xì)想想,我那文章的確語言啰嗦、內(nèi)容粗淺,不能發(fā)表也是可以理解的。換位思考,人家辦個(gè)雜志也不容易,怎能隨便冒被罵淺薄的風(fēng)險(xiǎn)。”
?????????大鳥接著問道:“最近有聽說過于丹這個(gè)人嗎?”
?????? “哦,你是說那個(gè)被稱為‘學(xué)術(shù)超女’,在央視的《百家講壇》講課的于丹吧,最近好象新聞里有什么‘十博士聯(lián)名批于丹’的消息,不過具體是怎么會(huì)事不清楚。”小菜說道。
?????? “你有空可以去網(wǎng)上搜搜看,已經(jīng)吵翻天了。那個(gè)所謂的十博士說要讓在古典文學(xué)方面只有初中文化程度的于丹下課,并且為她的錯(cuò)誤向全國人民道歉。你覺得是否荒唐?于丹講的《論語》、《莊子》可能是有些地方解釋不準(zhǔn)確,舉例有曲解,但和她將這些語錄結(jié)合人生哲理和時(shí)尚元素,使得更多的人,特別是吸引了當(dāng)下的年輕人去了解中國傳統(tǒng)文化相比,貢獻(xiàn)就遠(yuǎn)遠(yuǎn)大于瑕疵。實(shí)話說,《三國演義》我是讀過的,所以聽易中天講不過是換種思路,《論語》《莊子》可真是沒看過,我也相信現(xiàn)今99%的年輕人如果不是于丹是不會(huì)去接觸這些老古董,現(xiàn)在于丹火了,孔子莊子也跟著就火了,這其實(shí)是大大的好事。”
????? “是呀,年輕人也不是傻瓜。照本宣科的教育誰要聽呀?我在大學(xué)里學(xué)了半年的面向?qū)ο?#xff0c;都不明白為什么要Object Oriented,這幾天天天用設(shè)計(jì)模式,理解面向?qū)ο缶蜕羁潭嗔?#xff0c;我感覺面向?qū)ο蟮陌l(fā)明真的是奇跡。”
????? “我不知道現(xiàn)在大學(xué)里是否講設(shè)計(jì)模式,但我能想象,如果老教授上課開口就說:‘今天我們講橋接模式。’下邊先倒下三個(gè)睡覺的,‘這個(gè)橋接模式是一個(gè)非常有用的模式,也是比較復(fù)雜的一個(gè)模式。…………’,此時(shí)又倒下五個(gè)做夢(mèng)去了。‘橋接模式的用意是"將抽象化(Abstraction)與實(shí)現(xiàn)化(Implementation)脫耦,使得二者可以獨(dú)立地變化’,估計(jì)此時(shí)夢(mèng)周公的人已經(jīng)不下一半。…………‘艾水嬌同學(xué),請(qǐng)問今天講什么設(shè)計(jì)模式呀?’老教授有些氣憤,突然提問一個(gè)趴在桌上的學(xué)生。‘今天講的是……是……’小姑娘迷迷糊糊站起來。‘是橋接!’一個(gè)很小的聲音從旁邊傳過來。小姑娘聽到后說:‘是橋接……橋接……,哦,是巧 結(jié) 良 緣 模式!’,眾人大笑,老教授欲哭。”
????? “我們以前上課老師就是這樣照著書念呀,哈,那你說怎么上才好呢?”小菜問道。
????? “吭,”大鳥擺出一副老師的樣,清了清嗓子,開始講道,“我想大家小時(shí)候都有用蠟筆畫畫的經(jīng)歷吧。紅紅綠綠的蠟筆一大盒,根據(jù)想象描繪出格式圖樣。而毛筆下的國畫更是工筆寫意,各展風(fēng)采。而今天我們的故事從蠟筆與毛筆說起。…………呵呵,您是不是已經(jīng)看出來了,不錯(cuò),我今天要說的就是橋接模式(Bridge)。為了一幅畫,我們需要準(zhǔn)備36支型號(hào)不同的蠟筆,而改用毛筆三支就夠了,當(dāng)然還要搭配上12種顏料。通過Bridge模式,我們把乘法運(yùn)算3×12=36改為了加法運(yùn)算3+12=15,這一改進(jìn)可不小。那么我們這里蠟筆和毛筆到底有什么區(qū)別呢?…………”(見呂震宇 的設(shè)計(jì)模式隨筆-蠟筆與毛筆的故事?)
????? “啊,這下子應(yīng)該沒人會(huì)去睡覺了,聽故事比聽模式好玩呀。”
????? “如果只聽故事,那又何必要花那么多時(shí)間和金錢上大學(xué)。通過故事,再講設(shè)計(jì)模式的原理,從現(xiàn)實(shí)生活入手去理解復(fù)雜的設(shè)計(jì)模式就要容易得多,這才是關(guān)鍵。再舉個(gè)例子,小學(xué)時(shí)候老師讓你學(xué)英語背單詞,老是記不住,可是自從有了紅白機(jī)(游戲機(jī)),什么‘Start’、‘Game Over’記得比誰都牢,也是同樣的道理。”大鳥解釋道。
????? “嗯,看來設(shè)計(jì)模式是需要戲說一下才會(huì)有勁,聽得才會(huì)入味。就像于丹講《論語》一樣,如果都是正兒八經(jīng)的解釋字面含義,就沒人看她的《百家講壇》了。”
????? “我也不是崇洋媚外,同樣是好酒,茅臺(tái)的廣告實(shí)在是不怎么樣,除了最早去國外摔瓶子外,一直沒有太好的創(chuàng)意。人家XO那句‘讓靈感不只是空想’聽再多也不覺得膩味,而‘人頭馬一開,好事自然來’把那種在酒桌上的吉利話都說絕了,這一開‘人頭馬’,你說生意還做不成嗎?同樣道理,設(shè)計(jì)模式也是需要一些噱頭的,天天都是正統(tǒng)的論文式文章,沒意思不說,主要是不容易看懂呀。這么好的東西就因?yàn)闆]意思而推廣不出去,多讓人心碎哦。”
????? “是呀,以前我剛聽說設(shè)計(jì)模式的時(shí)候,去買了GoF的《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》,以為《葵花寶典》收為己有,一書在手,萬事不愁,可我發(fā)現(xiàn)很多都不是太懂,理解不了。”
??????“那可是設(shè)計(jì)模式四大名著之首哦!”
????? “四大名著?”
????? “哈,這是大鳥我的認(rèn)為,《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》、《重構(gòu):改善既有代碼的設(shè)計(jì)》、《Java與模式》、《重構(gòu)與模式》我認(rèn)為是設(shè)計(jì)模式的四大名著,本來想把《敏捷軟件開發(fā):原則、模式與實(shí)踐》也列入的,但考慮到《Java與模式》是國人之經(jīng)典,加之《敏捷》中還有敏捷開發(fā)等軟件工程的內(nèi)容,所以沒有列入。”
?????? 大鳥接著說:“GoF的書之所以位之首位,是因?yàn)樗麄兊谝淮伟言O(shè)計(jì)模式系統(tǒng)的劃分成了23個(gè)模式,總結(jié)了面向?qū)ο笤O(shè)計(jì)中最有價(jià)值的經(jīng)驗(yàn),并且用簡潔可復(fù)用的形式表達(dá)出來。盡管是95年的作品,但到現(xiàn)在為止,他們總結(jié)的模式仍然是最經(jīng)典的模式,沒太大變化。可惜這書卻也是這幾本書中最難讀懂的一本。要我說,它的噱頭最少,通篇都是精華,但由于晦澀難懂,這書也不知阻擋了多少有志青年學(xué)習(xí)設(shè)計(jì)模式的腳步。”
????? “所以說,經(jīng)典的也不是什么人都可以去讀的,需要有初級(jí),中級(jí)和高級(jí)讀物。”小菜也總結(jié)道,“那你為什么不把《Head First Design Patterns》列入四大名著呢,它可是最受歡迎的設(shè)計(jì)模式書籍呀?要說戲說,我看《Java與模式》里講故事的地方不比它少,又是西游記孫悟空,又是三國的錦囊妙計(jì)的。”
????? “是呀,可它老是不被翻譯成中文版,總感覺國人不認(rèn)可它。其實(shí)在10年前,美國人也只認(rèn)可GoF的論文式書籍的,可后來5年內(nèi)他們發(fā)現(xiàn),任何模式不是一來就想到并用上的,那往往會(huì)造成設(shè)計(jì)模式的過度使用,而通過重構(gòu)逐步演化并合理應(yīng)用一些設(shè)計(jì)模式,卻可讓程序達(dá)到非常好的效果,所以就有了《重構(gòu)》,再過5年,他們感覺就算只是對(duì)程序論程序也不足以說明問題,所以就開始戲說了。于是《敏捷》中用了不少有趣的例子,而后就有顛覆性的書籍《Head First》系列,把技術(shù)書籍寫得如同兒童畫報(bào)一樣的通俗。這可是偉大的進(jìn)步。”
?????? “你的意思是,在國內(nèi)還沒有認(rèn)識(shí)到這一點(diǎn),所以依然還在如同美國10年前的論文方式?嗯,不管是書籍還是教學(xué),國內(nèi)的確都不足已達(dá)到與美國相提并論的程度。”
????? “還好國內(nèi)也有了類似《Java與模式》的好書,以及博客園內(nèi)如呂震宇、Bruce Zhang、李會(huì)軍、WebCast的李建忠等等這樣為設(shè)計(jì)模式推廣做出大貢獻(xiàn)的朋友。所以小菜呀,好好努力,要想超過老美,估計(jì)靠寫技術(shù)書是不行了,哪天弄出個(gè)什么設(shè)計(jì)模式小說、設(shè)計(jì)模式電影、設(shè)計(jì)模式話劇、設(shè)計(jì)模式相聲等等才會(huì)有機(jī)會(huì)超英趕美呀!”
????? “設(shè)計(jì)模式相聲?不會(huì)吧你,你戲說過頭了哦!”
????? “哈哈,剛才那些什么電影、相聲都是在扯淡,設(shè)計(jì)模式游戲,我卻覺得是有可能的,利用多媒體技術(shù),讓程序員與電腦交互,達(dá)到學(xué)習(xí)的目的,這比老師直接上課效果還要好得多,由于每個(gè)人基礎(chǔ)不同,理解力不同,用游戲可以教育效果最大化。好比美國軍方都是利用電腦游戲來訓(xùn)練軍人,而我們國家利用電視劇《亮劍》來教育軍人展現(xiàn)精神,道理都差不多。”
????? “哇!設(shè)計(jì)模式游戲,多么吸引人的東東。如果現(xiàn)在就有該多好!”
????? “游戲哪是那么容易做出來的,首先要的是錢,不賺錢的事誰愿意投資呀?好了,和你說了那么多話,我氣也消了,我決定修改那篇文章的題目,不叫《設(shè)計(jì)模式不能戲說?》了,應(yīng)該叫《設(shè)計(jì)模式怎就不能戲說!》”
????? “是,設(shè)計(jì)模式怎么就不能戲說呢?——把戲說進(jìn)行到底,讓設(shè)計(jì)模式的戲說來得更猛烈些吧。大鳥,加油!!!”
?
(待續(xù))
注:本文純屬虛構(gòu),請(qǐng)不要對(duì)號(hào)入座,若有雷同,實(shí)屬意外。另四大名著實(shí)在是伍迷一家之言,有不認(rèn)可之處還望諒解。
出處:http://www.cnblogs.com/cj723/archive/2007/03/29/691274.html
總結(jié)
以上是生活随笔為你收集整理的大话设计模式(十四 设计模式不能戏说!设计模式怎就不能戏说?)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大话设计模式(十一 三层架构,分层开发)
- 下一篇: 大话设计模式(十三 有了门面,程序员的程