public interface CallbackInterface {
public boolean check(int result);
}
public class Manager implements CallbackInterface {
private Programmer programmer = null;
public Manager(Programmer _programmer) {
this.programmer = _programmer;
}
/**
* 用于 Boss 下达的委托
*/
public void entrust() {
arrange();
}
// 进行安排下属进行 study 工作
private void arrange() {
System.out.println("Manager 正在为 Programmer 安排工作");
programmer.study(Manager.this);
System.out.println("为 Programmer 安排工作已经完成,Manager 做其他的事情去了。");
}
@Override
public boolean check(int result) {
if (result == 5) {
return true;
}
return false;
}
}
public class Programmer {
public void study(CallbackInterface callback) {
int result = 0;
do {
result++;
System.out.println("第 " + result + " 次研究的结果");
} while (!callback.check(result));
System.out.println("调研任务结束");
}
}
public class Boss {
public static void main(String[] args) {
Manager manager = new Manager(new Programmer());
manager.entrust();
}
}
public class Programmer {
public Programmer() {
}
public void study(CallbackInterface callback) {
new StudyThread(callback).start();
}
// --------------------------- Programmer 正在做的工作 ---------------------------
class StudyThread extends Thread {
CallbackInterface callback = null;
public StudyThread(CallbackInterface _callback) {
callback = _callback;
}
@Override
public void run() {
int result = 0;
do {
result++;
System.out.println("第 " + result + " 次研究的结果");
} while (!callback.check(result));
System.out.println("调研任务结束");
}
}
}
interface Incrementable {
void increment();
}
class Callee1 implements Incrementable {
private int i = 0;
@Override
public void increment() {
i++;
System.out.println(i);
}
}
public class Callbacks {
public static void main(String[] args) {
Callee1 callee1 = new Callee1();
callee1.increment();
}
}
class Caller {
private Incrementable callbackReference;
public Caller(Incrementable _callbackReference) {
callbackReference = _callbackReference;
}
void go() {
callbackReference.increment();
}
}
public class Callbacks {
public static void main(String[] args) {
Callee1 callee1 = new Callee1();
Caller caller1 = new Caller(callee1);
caller1.go();
}
}
class MyInCrement {
public void increment() {
System.out.println("MyCrement.increment");
}
static void f(MyInCrement increment) {
increment.increment();
}
}
class Callee2 extends MyInCrement {
private int i = 0;
public void increment() {
super.increment();
i++;
System.out.println(i);
}
}
class Callee2 extends MyInCrement {
private int i = 0;
public void increment() {
super.increment();
i++;
System.out.println(i);
}
private class Closure implements Incrementable {
@Override
public void increment() {
Callee2.this.increment();
}
}
Incrementable getCallbackReference() {
return new Closure();
}
}
public class Callbacks {
public static void main(String[] args) {
Callee2 callee2 = new Callee2();
Caller caller2 = new Caller(callee2.getCallbackReference());
caller2.go();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有