package net;
import java.util.ArrayList;
import java.util.List;
public class FZ {
public static void main(String[] args) {
B button = new B();
button.clickButton(new A());
System.out.println("----------------");
C c = new C();
c.startBatch();
}
}
interface IListener {
public void callBack(String data);
}
class A implements IListener {
@Override
public void callBack(String data) {
System.out.println("do this thing...");
}
}
class C implements IListener {
private List<BBB> bbbs = new ArrayList<BBB>();
public void startBatch() {
for (int i = 0; i < 10; i++) {
BBB bbb = new BBB(this);
bbbs.add(bbb);
bbb.start();
}
}
@Override
public void callBack(String data) {
// TODO Auto-generated method stub
System.out.println(data + " done!");
}
}
class B {
private IListener listener;
public void clickButton(IListener listener) {
this.listener = listener;
// TODO do much time
String data = "done!";
listener.callBack(data);
}
}
abstract class BB {
private BB bb;
abstract void clickButton(BB bb);
public void ClickButton(BB bb) {
// TODO spent log time thing
bb.clickButton(bb);
}
}
class BBB extends Thread {
private IListener listener;
public BBB(IListener listener) {
this.listener = listener;
}
@Deprecated
public void clickButton(IListener listener) {
this.listener = listener;
String data = "done!";
listener.callBack(data);
}
public void doThings() {
// TODO cost much time
for (int i = 0; i < 100; i++) {
System.err.println(Thread.currentThread().getName() + " => " + i);
}
listener.callBack(Thread.currentThread().getName());
}
@Override
public void run() {
doThings();
}
}
java Callback
最新推荐文章于 2024-05-16 15:30:42 发布