none
功能模組化(對應不同關聯資料表) RRS feed

  • 問題

  • Hello,

    目前小弟正在學習C# WPF

    問題是這樣的..

    條件:每個頁面撈的資料都不一樣
    每個頁面裡頭都有一張DataGrid,索引不同的資料表類別
    如tblCustomer、tblProduct、tblAnythings...
    //
    我想自己寫一個「分頁」功能
    若我把分頁功能寫在一個Class裡頭,視它為一個獨立插件
    用意是:未來頁面擴充,呼叫他就可以套用
    //
    假如我成功寫出分頁功能,實現在Customer頁面裡頭
    Customer頁面索引的資料表類別是tblCustomer

    var tblCustomer_query =
                    (from n
                     in context.tblCCTV
                     select n).ToList();

    上面這行是Query對應資料表類別的資料,為了給自己寫的功能索引資料數,判段分頁的量

    問題來了:
    如果我把Plugin套在別的頁面,別的頁面並不是索引tblCustomer
    這樣就Query不到資料了
    //
    目前想到的方法是寫一大串的Switch Case

    case "CustomerPage":
            //Query tblCustomer Something>
            break;
    
    case "ProductPage":
            //Query tblProduct Something>
            break;

    但這等同於是寫死...把功能寫在每個頁面是同樣的意思

    該怎麼做,才能寫出好的「功能模組化」的Code呢?

    謝謝!


    • 已編輯 Yumir 2014年8月21日 上午 09:14
    2014年8月21日 上午 09:11

解答

  • 你可以利用一些 Design Pattern 來消除 switch case,例如 strategy pattern, factory pattern 等。

    寫 plug-in 最好還要搭配 Dependency Injection,否則你很難做到 client 不改的情況下切換 server,或是要寫更多的 code 來處理。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    • 已標示為解答 Yumir 2014年8月25日 上午 02:48
    2014年8月21日 上午 10:25
    版主
  • 針對WPF的DataGrid控制項的分貢問題可以用現成的WPF Paging Control控制項來解決, 您可以參考這個文件的做法:Small Paging Control for Windows Presentation Foundation (WPF)

    • 已標示為解答 Yumir 2014年8月28日 上午 01:00
    2014年8月22日 上午 01:14

所有回覆

  • 你可以利用一些 Design Pattern 來消除 switch case,例如 strategy pattern, factory pattern 等。

    寫 plug-in 最好還要搭配 Dependency Injection,否則你很難做到 client 不改的情況下切換 server,或是要寫更多的 code 來處理。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    • 已標示為解答 Yumir 2014年8月25日 上午 02:48
    2014年8月21日 上午 10:25
    版主
  • 非常感謝小朱!

    目前正在深入瞭解Design Pattern,觀察者模式、策略模式的架構及寫法

    [Design Pattern] 策略模式 (Strategy Pattern)
    
    http://www.dotblogs.com.tw/joysdw12/archive/2013/03/07/95769.aspx
    [Design Pattern] 觀察者模式 (Observer Pattern)
    
    http://www.dotblogs.com.tw/joysdw12/archive/2013/03/13/96531.aspx
    


    2014年8月22日 上午 01:00
  • 針對WPF的DataGrid控制項的分貢問題可以用現成的WPF Paging Control控制項來解決, 您可以參考這個文件的做法:Small Paging Control for Windows Presentation Foundation (WPF)

    • 已標示為解答 Yumir 2014年8月28日 上午 01:00
    2014年8月22日 上午 01:14