2009-01-25 63 views
3

我經常使用可馴化的東西,而且我遇到了一個讓我感到煩惱的問題:「正確」放入Callable有多少邏輯?

假設要運行函數foo(),首先需要做幾項檢查。

如果您 1.將檢查作爲可贖回的一部分:

class A implements Callable<Long> { 
... 
public Long call() { 
    check1(); 
    check2(); 
    return (run()); 
} 
  • OR,插入所有這種邏輯到另一個類(ALogic),並使用可贖回執行者只是一個外殼? class A implements Callable {
    ...
    public Long call() {
    ALogic aLogic = new ALogic();
    return (aLogic.run());
    }
  • 你覺得親和騙子是什麼?你通常喜歡什麼?

    回答

    1

    實現回調[Java關鍵字]接口時的一般建議是專注於使[非Java關鍵字]接口適合被調用類型。匿名內部類(或其他)通常不應該有那麼多,但不僅僅是轉發呼叫。

    此外,一個構造對象通常並不好,然後只有一個方法被調用。使它成爲一個靜態方法(這可能可能反過來通過一個私有構造函數創建一個對象並運行它)。

    1

    你覺得哪個更簡單或更清晰? 我建議你這樣做。

    0

    我通常更喜歡簡單地將回調轉發到封閉類上的私有方法。這消除了「this」引用,它只是指向匿名內部類,這是非常無用的。