我正在创建几个将从数据库中收集数据的线程。
然而,在所有这些线程中,我需要一个对我的Database
对象的本地引用,据我所知有两种方法可以做到这一点,或者我使用一个接口:
public interface Command {
void execute();
void collectData();
void processData();
void setData(ArrayList<Objects> data);
}
然后在每个 thead 类中手动设置变量(扩展命令接口)
但是,在进行测试和搜索时,我发现我可以执行以下操作:
public abstract class commandtest implements Runnable{
Database db;
abstract void execute();
abstract void collectData();
abstract void processData();
abstract void setData(ArrayList<Objects> data);
}
这里有一个抽象类,我的每个线程对象都可以扩展它,然后创建一个构造函数来设置所需的变量。
我的问题很简单,这两种方法中哪一种是最佳实践?