我在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();
答案 0 :(得分:2)
我相信您的第一个代码段是首选解决方案,因为您没有承诺特定的实现。 Thread
不是Runnable
的唯一实现(例如TimerTask
,FutureTask
等。)
通过在实施中使用CountDown
Thread
,您可以从使用CountDown
的任何人那里获取大量控制权。见"implements Runnable" vs. "extends Thread"