2017-01-19 56 views
1

我已經寫了一個java類的倒計時時鐘。我的階級是這樣的:Java與線程倒計時

public class CountDown implements Runnable { 

    ... 

    @Override 
    public void run() { 

     // The functionality of the clock. 

    } 

    ... 

} 

現在,當我想從另一個類運行倒計時,我用這個代碼

(new Thread(new CountDown(10))).start; 

我的問題是:

難道是更好,如果我改變這樣的班級:

public class CountDown { 

    ... 

    public void start() { 

     new Thread(new Runnable(){ 

      @Override 
      public void run(){ 

       // The functionality of the clock. 

      } 

     ).start(); 

    } 

    ... 

} 

然後這樣從另一個類調用它:

new CountDown(10).start(); 
+1

首先請神,不要做第二次,因爲它是可憎的。 –

+0

@Hovercraft完整的鰻魚好的。一個解釋將是很好的。 – Thanasis

+1

1)當它實際上不是Runnable時,你正在使類實現Runnable。 2)你通過不必要的強制實現細節來使代碼變得僵化。例如,現在沒有辦法使用CountDown和更新的併發結構。 3)調用類無法控制或訪問Thread對象... –

回答