我已經使它成爲一個個人規則,在使用它之前繼承每個UI控件。在以前的生活中,我總是認爲這是你可以做的不太有用的事情之一,因爲理由總是好像是「我可能想要一次改變所有按鈕上的字體」......這是一種永不成功的動機......曾經......曾經。但是,最近的兩個項目已經改變了我對這種做法的看法。首先,我們需要一個一致的「ValueChanged」事件,以便我們可以輕鬆地在表單上實施「髒」標誌,而無需大量的switch語句在Textbox的「TextChanged」事件或ListBox的「SelectedIndexChanged」之間進行選擇。只是想要一個一致的東西來傾聽所有控件,並且對內置控件進行子類化很容易就能買到我們。什麼是「正確」的方式來隔離控制依賴
在第二個項目中,我們盡了一切努力與基本控件相處,因爲UI預計會非常簡單,但是幾個月後,顯然他們不會再削減它了,我們購買了Telerik控制套件。如果我們繼承了所有的控件,那麼將我們的派生控件更改爲從Telerik控件繼承將會爲我們全局應用這些更改。相反,我們必須在所有的表單設計師中進行一些搜索和替換。
因此,這裏是我的問題:什麼是相對的優勢和
- 弱點簡單地增加一個類,並使其從控件繼承。
- 添加一個新的「自定義控件」並繼承。
- 添加一個新的「組件」並繼承。
這三者最後都有相同的效果,你會得到一個新的Button類型放在你的表格上。我看到所有三個人都被不同的人使用,每個人似乎都認爲他們的方式是最好的。我想我應該把這個討論放在StackOverflow上,也許我們可以確定一個共識,就是哪一個是「正確」的方式。
注:我已經有我的個人意見,哪些是「正確」,但我想看看世界的想法。
在我們的例子中,我們使用的是被動視圖MVP模型,所以在模型層面上的傾聽不適合我們。上面的例子被簡化,只是爲了設置問題本身。 1和2在功能上是相同的,但是由於設計器文件而在結構上不同。 – Mel 2009-02-27 13:24:44