Java回调妙用,可以使用广播模式,可以使用多线程处理,增加并发度。
public interface Callback {
void callback();
}
public class CallbackImpl implements Callback, Runnable {
public void callback() {
System.out.println("Callback is begin execute !");
}
public void run() {
System.out.println("Callback task is begin execute !");
}
public void execute() {
new Thread(new Runnable() {
public void run() {
System.out.println("Callback task list is begin execute !");
}
}).start();
}
public void work() {
new Workers().start();
}
public class Workers extends Thread {
public void run() {
System.out.println("Callback task is begin execute !");
}
}
}
public class Task {
private Callback callback;
private List<Callback> callbacks;
public Task(Callback callback) {
this.callback = callback;
}
public Task(List<Callback> callbacks) {
this.callbacks = callbacks;
}
/**
* 单个回调
*/
public void task() {
System.out.println("Task is begin !");
if (null != callback) {
callback.callback();
}
}
/**
* 批量回调
*/
public void taskList() {
System.out.println("Task is begin !");
if (null != callbacks && callbacks.size() > 0) {
for (Callback c : callbacks)
c.callback();
}
}
}