對于模式的“十大誤解”

發表于:2009-11-24來源:作者:點擊數: 標簽:十大誤解模式
對于模式的“十大誤解” 軟件測試 關鍵字:測試 譯者語:現在“模式”這個詞真是非常流行。就象任何流行的東西一樣,對它的誤解也真是不少。甚至在一些發表出來的文章中,也存在著各種各樣的誤解,我想這會對讀者造成非常糟糕的引導作用。早已想寫一篇文章來

        對于模式的“十大誤解”    軟件測試

  關鍵字:測試

  譯者語:現在“模式”這個詞真是非常流行。就象任何流行的東西一樣,對它的誤解也真是不少。甚至在一些發表出來的文章中,也存在著各種各樣的誤解,我想這會對讀者造成非常糟糕的引導作用。早已想寫一篇文章來澄清一些對模式的誤解,卻又因為水平所限難以成文。恰在此時,我看到John Vlissides先生的《十大誤解》,于是我便樂得當文抄公了。

  關于設計模式,下面有十種錯誤的觀點——很多都是很流行的觀點。且看Vlissides先生如何撥開這些迷霧。

  最近,圍繞著模式的討論日囂塵上,人們對模式的混淆、驚惶和以訛傳訛已經不是一點半點。這也從一個側面反映出對于主流軟件開發者來說,模式是一個多么新鮮的領域——盡管嚴格說來,它并不是一個新的領域。同時,模式也是一個飛速發展的領域,留下了大片的空白。而且,沒錯,我們這些模式的支持者也應該受批評,因為我們沒有把自己的知識完完全全地教給別人。盡管我們這樣想過,但是卻沒有這樣做[BMR+96, Coplien96, CS95, GoF95, MRB98, VCK96]。

  因此,我覺得自己有責任來糾正一些模式方面越來越夸張的誤解——我常常聽到的那些誤解都足以形成自己的模式了。甚至連我也曾經想以模式來組成自己的軟件結構……后來我才明白:“把所有的東西都變成模式”,這種想法本身就是錯誤的!總之,請記住,這篇文章不是在給模式社群的人們看的。我想,絕大多數的模式專家都會同意:下面這些都是很常見的誤解。但是他們也許不會同意我消除這些誤解的方式。

  這幾年以來,我聽到過許多人談論模式。把聽到的這些東西整理一下,對模式的誤解大概有三類:對于“模式是什么”的誤解,對于“模式可以做什么”的誤解,以及對于支持模式的人群的誤解。我的“十大誤解”都落入這三類之中,所以我就把這些誤解都組織起來。首先,我們來看看關于“模式是什么”的誤解。

  誤解之一:“模式是某種場景下某個問題的解決方案”

  這個定義來自于Christopher Alexander[AIS+77],所以如果把它稱為“誤解”,也許有人會把我視為異端。但是下面這個簡單的反例能讓你看清它的缺點:

  問題:我獲獎的獎券就快過期了,我怎樣拿到獎金?

  場景:離截止時間只有一小時,可是我家的小狗把獎券給吞了。

  解決方案:把狗開膛破肚,掏出獎券,然后飛奔到最近的兌獎地點。

  這是“某種場景下某個問題的解決方案”,但它不是模式。還缺了什么?至少缺三樣東西:

  1. 可重復性。解決方案應該對應于外部的場景。

  2. 可傳授性。一個解決方案應該可以移植到問題的不同情況上。(絕大多數模式的可傳授性都建立在“約束”和“效果”的基礎上。)

  

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97