2009-09-27 88 views
0

我的問題涉及到Windows窗體上新手OO問題

比方說,我有一個客戶和訂單組合框,並依賴於對這些組合框所做的選擇我填充所有訂單細節數據網格。

我對datagrid行內的雙擊事件感興趣。

在事件2件事情都可能發生:

  • 記錄已被刪除。
  • 一個或兩個組合框已更改。

沒有OO經驗,我正在處理代碼隱藏中的所有邏輯。

這是一件錯誤的事情嗎?我應該創建一個返回布爾類型的類是否取消事件,或者在滿足所有條件的情況下執行其他操作?

如果我創建一個處理該邏輯的類,那麼該類需要引用datagrid和所有關聯的控件及其先前值和當前值。

我只是困惑。

回答

3

我不確定這是否是OO問題:有關patterns的更多信息。

如果我是你,我會看看MVC(Model View Controller),MVP(Model View Presenter)等。 Martin Fowler是此主題的主要權威之一。

MVVM在WPF中很受歡迎 - 不確定數據綁定是否在Forms中能勝任。

其中一個關鍵的問題是,如果您將邏輯與顯示器gubbins分開,那麼測試將變得非常容易。

0

面向對象的做事方式是任何人都無法在一個鏡頭中告訴你的。這是一個全新的思維模式,可以用少量交互對象來解決問題。這些對象來自您正在爲其創建解決方案的問題域。

從問題中,我可以輕鬆挑選至少兩個問題域對象 - 一個是「客戶」,另一個是「訂單」。 可能是你的「訂單」類是由「OrderItem」的各種對象組成的,它是由對「產品」之一的參考,數量和價格構成的。

如果這有點難以理解,我敢肯定,您至少會擁有一個具有持久存儲數據的表的數據庫。您擁有的表(在許多情況下)可以對應於您需要設計的實際類。

你不必設計獨立的類,實際上可以使用datagrid和其他控件,它們可以保留在代碼後面。但是,所有業務域對象和可以在這些對象上執行的操作都必須封裝到類中。