設計模式學習歷程

freeren發表於2008-10-20
今天突發奇想,在道上開個貼,記錄各道友學習設計模式的歷程、心得。好了,話不多說,我先來說說最近學習的proxy、decorator、adapter、bridge等模式:
為什麼會先提這幾個呢?
這幾個模式,單從uml圖或者程式碼結構看來,兩兩相似。特別是proxy與decorator很多人都混了,包括我。於是我得出自己的結論:學習模式不只是停留在看懂程式碼,而是懂其意,也就是老師總提的道。
首先看看proxy與decorator,看了很多關於他們的介紹,雖然從字面上看區別了。但一直不能區分出他們在程式碼上的區別。直到最近想到了個很生動的例子:演員與替身演員。演員就是decorator,換了套衣服、換了外表就成新角色,還自始至終都是他本人;替身演員則是proxy,真正的演員不來做這些表演,由替身演員來完成。這樣的理解,很快我能從概念與應用中區分開他們的用法了。
接下來,我們談談adapter與bridge,這兩者不像proxy與decorator那麼相似,但是也有幾分相似。adapter是把兩個不相關的類關聯起來,透過適配者把被適配者給關聯進來;而bridge是把物件抽象出其靜態的共公部分與行為相分離,透過行為部分被關聯到抽象的例項中。這個抽象的例項看起來很像適配者,而行為看起來很像被適配者,但是adapter模式中的被適配者與要適配出的物件一點關係都沒有,bridge模式中的抽象與行為卻是有關係的,同屬於一個物件。

好了,今天先談到這裡,改天繼續學習,繼續更新,希望大家能給我更多的意見與建議並也一起參議!

相關文章