之一在Struts2動作執行器線程使用以下代碼:與不同的動作
java.util.concurrent.ExecutorService myservice = Executors.newSingleThreadExecutor();
myservice.execute(new myTask(user, "add"));
這裏,myTask是實現Runnable接口內部類。
我可以調用從其他動作類上面的代碼,以及通過傳遞參數低於所示:
java.util.concurrent.ExecutorService myservice = Executors.newSingleThreadExecutor();
myservice.execute(new myTask(user, "delete"));
在試驗方法中,我會如果檢查動作&如果其添加,執行某些活動,它的更新,執行其他活動....
此外,從另一個第三個動作類,我可以通過傳遞另一個動作,稱爲「更新」,調用上述相同的線程?
class myTask implements Runnable{
private User user = null;
private String action = null;
myTask(User user, String action){
this.user = user;
this.action = action;
}
public void run(){
if (action.equals("add")) {
performAdd(user);
} else if (action.equals("delete")) {
performDelete(user);
}
}
謝謝!
在myTask構造函數中,我將介紹這個參數,它們是不同的動作。然後在Run方法中,我將檢查動作是否添加,然後執行添加,否則執行其他操作....我可以這樣做嗎? – Mike 2012-01-04 06:34:45
@Mike你可以按照你的方式去做,儘管Jon的更多OOP。如果你這樣做,至少考慮使用枚舉來進行操作(添加,刪除等)而不是字符串。 – user949300 2012-01-04 06:40:18
這就是多態性。有一個UpdateTask,一個DeleteTask和一個AddTask,它們都實現了Runnable。然後你只需要做一個'myservice.execute(new AddTask(user))' – Yuushi 2012-01-04 06:41:43