[J2SE] 副程式的設計
假設有一個String 變數叫command,
字串內容可能是
print
save
go
leave
say
之類的指令,大概有二、三十個。
但每一個指令要做的事情都不一樣,要呼叫不同的副程式。
目前我的做法是用一個陣列去存目前的指令列表,例如
String[] commands={"print","save","go","leave","say"};
然後根據command的內容去取它的index,像
index=Arrays.asList(commands).indexOf(command)+1;
接著再分配給不同的副程式
switch(index)
{
case 1:
print();break;
case 2:
save();break;
.
.
.
}
但這樣有個壞處,因為指令可能會新增或刪除,
假設刪除了某個指令,造成後面元素的索引值都變了,
呼叫的時候就會呼叫錯,而且還是要用一堆case,也沒有比較好。
我也可以土法煉鋼,
用
if(command.euqal("print"))
print();
else if(command.equal("save"))
save();
不過總覺得如果命令的種類有很多,這兩種做法都顯得有點笨,
請問一下有更好的處理方式嗎?謝謝。
PS:指令跟呼叫的副函式名稱不一定相同。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.211.210
※ 編輯: neverfly 來自: 220.136.211.210 (01/22 17:36)
推
01/22 17:57, , 1F
01/22 17:57, 1F
推
01/22 18:19, , 2F
01/22 18:19, 2F
→
01/22 18:27, , 3F
01/22 18:27, 3F
→
01/22 19:13, , 4F
01/22 19:13, 4F
推
01/22 20:26, , 5F
01/22 20:26, 5F
→
01/22 21:00, , 6F
01/22 21:00, 6F
推
01/23 07:43, , 7F
01/23 07:43, 7F