2009-11-20 21 views
3

現在我已經更多地參與WPF大約一年。很多東西都是新的,有時很難讓我的腦袋纏繞它。WPF中使用的模式

同時我正在重讀GOF Design Patterns書。

有幾次我會停在中間,因爲我會意識到某種模式是在某些WPF功能中使用的模式。無論何時這樣的認識對我產生影響,我覺得我對WPF相關原理的理解纔剛剛邁出了一大步。這有點像阿哈 - 效應。

我也意識到我比較容易理解Prism,因爲文檔在解釋涉及的模式方面做得非常出色。

因此,這裏是我的「問題」(更像是努力):

爲了幫助我們理解 WPF更好的將是巨大的,如果有人 誰也「發現」設計模式在 的WPF可以給一個簡短的解釋。

一個很明顯的例子,我發現是路由事件:

如果由孩子 控制檢測到事件並沒有處理程序一直 指定,並將它傳遞給它的 父依此類推,直到最終處理了 或者沒有找到父母。

假設我們有一個按鈕 上的圖像,它位於一個窗口內部的一個StackPanel中,它是 。如果用戶點擊圖像,則該事件將由其處理(如果處理代碼已指定了 )或者「泡泡」直到 其中一個控件處理它。所以 每個控件都會有機會按此順序對 作出反應。

  1. 圖片
  2. 按鈕
  3. 的StackPanel
  4. 窗口

一旦控制處理它的 起泡將停止。

這是一個簡短的解釋,對於一個 更精確的請參閱WPF 文獻。

這種功能代表 的「Chain of Responsibility 設計模式」的規定,如果 他們是一個請求時,它被傳遞 沿責任鏈給 在它的每個對象都有機會處理 它。請求的發件人沒有 想法誰將處理它,這確保了 解耦。有關更詳盡的 解釋,請點擊鏈接。

這裏的目的僅僅是爲了說明這個(看似十歲以上的老想法)如何融入我們當前的技術並提供另一種觀察方式。

我認爲這已經足夠一開始,並希望在這裏收集更多的相似之處。

乾杯,托爾斯滕

回答

0

我不認爲這是具體的WPF但觀察者設計模式似乎是所有事件處理在.Net和WPF所依據的基礎。

觀察者設計模式被描述爲「定義對象之間的一對多依賴關係,以便當一個對象改變狀態時,它的所有依賴項都會被自動通知和更新。」在使用+ =運算符的.Net中,您訂閱了這種狀態變化。隨後您取消訂閱 - =運算符。