論 設計模式是不是每天要用

2021-04-09 01:09:08 字數 2117 閱讀 7307

論: 設計模式是不是每天要用?

對於「設計模式是不是每天要用?」這個問題,我的看法是,能用就用。

在我看來,模式的主要服務物件不是設計,而是交流。

這一點我記得gof模式書是有說過,但不是很強調。

而各種模式書的模式表述法為: 提出問題,然後用模式解決。

結果許多設計者就把自己的問題與之對照,然後套用對應模式解決問題。

包括我自己,以前也是這樣做的。模式成為了設計的工具。

其實,最初的模式產生於設計之後,相類似的解決方案總結才產生了模式。

如果沒有模式的概念,你同樣能作出問題的解決方案。

模式最有用的地方應該是交流。

表達乙個設計最簡潔的方法就是用乙個或幾個模式概要之。

如對乙個系統你這樣描述:它是乙個管道模式系統,

資料以檔案方式進入後,經過a,b,c處理,最終流入d。

前提是交流的各方都要對模式有所熟悉。

程式設計師a:報表這塊怎麼設計?

架構師:用乙個possibility模式。

程式設計師a:請問什麼是possibility模式?

架構師就必須解釋什麼是possibility模式。

在對模式的理解上達成一致的情況下,才能有效利用模式進行交流。

在傳統的設計中,模式大概是很有用的,它提供了靈活的設計,把可變性提出另一層次進行處理。

而在現在流行的靈巧式開發中,設計與**交替進行,模式對於設計的幫助就大大減小了。

因為設計處於不斷的演化中,不是先定模式再有設計,而是先有了設計,再看到模式。

模式不是作為設計的指導,而成為設計演化的結果。

你在一次設計重構之後大呼:「現在我們已經進化到mvc模式了!」,而不是一開始就決定要應用mvc。

有了模式,你可能會覺得套用模式會使設計變得簡單,而且「專業」。

在有些情況下,我覺得還是擯棄模式才會有簡單的設計。

我有過多次經驗,將原有的模式通過重構,進行簡化,去除不必要的類層次,

結果是僅用簡單的繼承或組合就能解決問題。

仔細一看,模式是可以退化成更簡單的形式的。

例如,你不需要單件模式,乙個類只例項化一次就可成為乙個單件。

對於熟悉的人來說,應用模式簡化了設計,對於不熟悉的人來說,模式反而使設計更能理解。

還有乙個問題是,gof的模式書和其它模式書中僅對有一定複雜性的模式作了列舉,因為複雜才能顯示其水平。

而實際應用中,更有用的是書上未列舉的模式,或退化的模式。

如簡單的繼承,單一單向的組合,這些都是有用又好用的模式。

如mvc這類較大型的模式,應該是由框架提供,自己實現的機會不多。

即使你沒用框架,也可以不用mvc,同樣能實現資料展示功能。

簡單的模式可以逐步演化為複雜的模式。

原文 **:

設計模式是不是每天要用?

每天必用設計模式的公司:

第一天程式設計師a:報表這塊怎麼設計?

架構師:用乙個possibility模式。

程式設計師a:請問什麼是possibility模式?

第二天專案經理:昨天討論了,報表這塊怎麼設計?

程式設計師a:用乙個possibility模式。

專案經理:請問什麼是possibility模式?

第三天程式設計師b(新來的):請問報表這塊怎麼設計?

專案經理:用乙個possibility模式。

程式設計師b:請問什麼是possibility模式?

問題:* 剛畢業的大學生沒學過模式,還有好多人不熟悉。如果都要懂,會不會累死人?

* 設計模式不只gof的23個,其他人也總結了n多個。那麼多的模式,***我不一定懂,我懂的你不一定懂,怎麼交流?

* 今天流行這個模式,明天那個模式消亡,我們是為了模式而生存嗎?

* 大師們都懂模式嗎?他們會不會因為不懂模式而幹不了活,丟掉飯碗?bjarne strustroup, stan lippman, danny thorpe, brian kernighan, peter coad, knuth, andrei alexandrescu, steve mcconnell, herb sutter, anders hejlsberg, dennis ritchie, ...

建議:* 學校中開設設計模式課,但類似於資料結構,只教授經過歷史洗禮、非常經典的模式;

* 將模式提交給標準組織,產生標準模式。學校裡只教授標準模式。

設計模式是不是每天要用?

每天必用設計模式的公司 第一天程式設計師a 報表這塊怎麼設計?架構師 用乙個possibility模式。程式設計師a 請問什麼是possibility模式?第二天專案經理 昨天討論了,報表這塊怎麼設計?程式設計師a 用乙個possibility模式。專案經理 請問什麼是possibility模式?第...

設計模式(為什麼要用設計模式)

在剛開始學設計模式的時候,設計模式 對於我來說是一種抽象的詞彙,學之前一直不明白所說的 設計模式是什麼 接觸了之後才逐漸了解。1.什麼是設計模式 我認為設計模式它是一種 程式設計長期發展的經驗和套路,並且中所周知的一套 方法和理念。也是我們編寫程式的基石。2.為什麼要用設計模式 設計模式就像蓋房子首...

那些不用上班的老人每天是不是很幸福?

我今年五十六歲,雖然年齡還不算太老,可由於自己身體的原因已不能自食其力了。由於二十四歲的兒子還在談女朋友暫時還沒有結婚,現在在女兒家做起了免費保姆,說是做保姆,也就是幹些自己力所能及的家務活。我和全職的女兒帶三個分別上小學和幼兒園的孩子,女婿經常在外打拼很少回來,免去了在一起相處的尷尬,感覺還算自在...