Java消息回调实例
实例实现功能: 管理员叫程序员写一行新的代码,程序员写完了之后要告诉管理员一声
首先实现一个回调的接口
/**
* 回调接口
*/
public interface CallBackInterface {
/**
* 判断回调是否成功
* @param
* @return
*/
public boolean callbackFlag();
}
再写一个程序员类,因为要跟管理员沟通,所以需要实现回调接口
/**
* 程序员
*/
public class Coder implements CallBackInterface {
// 行为完成的标志
boolean getFlag = false;
/**
* 程序员具有的行为
*/
public void WriteCode() {
System.out.println("程序员写了一行代码");
// 告诉管理员,代码写完了‘
getFlag = true;
}
@Override
public boolean callbackFlag() {
return getFlag;
}
}
再写一个管理员类,因为要给程序员下发任务,所以也需要实现回调接口
/**
* 管理员:
* 管理需要直接跟程序猿对接,所以需要实现回调接口
*/
public class Manager implements CallBackInterface {
//管理员手下的程序员
Coder coder;
// 行为完成的标志
boolean getFlag = false;
/**
* 得到上级任务
*/
public void getTask() {
}
/**
* 给下属分发任务
*/
public void arrange() {
System.out.println("管理员给程序员安排任务,任务开始");
// 让程序员写一行代码,直到程序员反馈代码写完了
while (!coder.callbackFlag()) {
coder.WriteCode();
}
System.out.println("程序员向管理员反馈代码写完了,任务结束");
}
public Coder getCoder() {
return coder;
}
public void setCoder(Coder coder) {
this.coder = coder;
}
@Override
public boolean callbackFlag() {
return getFlag;
}
}
最后写个测试类,让管理员执行向程序员下发任务这一行为
public class Test {
@org.junit.Test
public void test() {
Manager manager = new Manager();
// 管理员找到某个程序员
manager.setCoder(new Coder());
// 给这个程序员下发任务
manager.arrange();
}
}