2012-04-01 16 views
5

Questo buon progetto OO presuppone che si desideri che ogni classe ereditaria sia una discussione infinita? Qualunque modo migliore/più elegante di fare cose simili?È accettabile OO Design

public abstract class Base implements Runnable { 

protected abstract void doSomething(); 

public void run() { 

    while (true) { 
     Thread.sleep(1000); 
     doSomething(); 
    } 
} 
} 

risposta

11

Se desideri solo doSomething per eseguire ogni secondo, si potrebbe spostare il compito al proprio Runnable e schedule con un ScheduledExecutorService. In questo modo puoi ridurre il numero di thread nel tuo programma e risparmiare risorse.

+0

scheduleWithFixedDelay, in particolare – James

Problemi correlati