以下は私のインターフェースです -
public interface IClient {
public String read(ClientInput input);
}
これは私のインターフェースの実装です -
public class TempClient implements IClient {
@Override
public String read(ClientInput input) {
}
}
以下は私の工場コードです -
public class TempClientFactory {
public static IClient getInstance() {
// new TempScheduler().startScheduler();
return ClientHolder.INSTANCE;
}
private static class ClientHolder {
private static final TempClient INSTANCE = new TempClient();
}
}
今、私はTempClient
このようなインスタンスを取得するファクトリを持っているので、顧客は私たちのコードを呼び出すときに以下のように私たちのファクトリを使用します.
IClient client = TempClientFactory.getInstance();
client.read(input);
以下は私のバックグラウンドスレッドコードです-
public class TempScheduler {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
public void startScheduler() {
final ScheduledFuture<?> taskHandle = scheduler.scheduleAtFixedRate(new Runnable() {
public void run() {
try {
callServers();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}, 0, 500, TimeUnit.SECONDS);
}
}
//... some code
}
問題文:-
- これで、URL からデータをフェッチし、解析して変数に格納するバックグラウンド スレッドがバックグラウンドで実行されます。ここで私が望むのは、顧客がファクトリを使用してコードを使用するための呼び出しを開始したらすぐに、バックグラウンド スレッドを開始することです。そこで、バックグラウンド スレッド呼び出しをファクトリ
getInstance
メソッドに入れることができると考えました。