簡體   English   中英

以通用方式添加Handler方法以與xml中指定的Handler名稱相關

[英]Adding Handler methods in a generic way to correlate to Handler names specified in an xml

我在Tasks.xml中描述了約100個任務。 每個任務都有一些字段,例如名稱,索引和優先級。 最終,在程序中,每個任務都由類任務表示。 我要求增加每個任務運行處理程序的能力(大約有15種可能的處理程序,有些是常見的)。 我決定將Handler屬性添加到xml中的每個任務:

<Task Name="Task1" Handler="TaskHandler_A">

並在類任務中添加一個名為Handler屬性值的方法:

public class Task
{
    string name;
    // some more fields

    void TaskHandler_A()
    {
    }

    // some more handlers
    //
    void TaskHandler_P()
    {
    }    
}

我應該在程序中運行以在某個時候處理此任務(每個處理程序方法大約10條代碼行)。 這應該可以解決需求,但是似乎不夠通用,因為代碼公開了處理程序的名稱。 有沒有更優雅/通用的解決方案來滿足此要求,這樣我就不需要在代碼內公開處理程序名稱了?

一種方法是僅對switch語句使用one method

void handler(String handler){
  switch (handler){
    case "TaskHandler_A":
    //relevant code for handler TaskHandler_A
    break;
    case "TaskHandler_B":
    //relevant code for handler TaskHandler_B
    break;
    // other cases
  }
}

在這種情況下,要制定通用方法還取決於事件處理代碼,以防它們有多少公共代碼,或者您究竟希望處理代碼做什么

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM