[英]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.