在您链接KillMonsterEventListener的代码示例中
public interface KillMonsterEventListener {
void onKillMonster ();
}
为您的API用户提供了一种告诉您这样的方法:
Here is a piece of code. When a monster is killed, call it back. I will decide what to do.
这是我在执行流中的特定点插入代码的一种方式(特别是在怪物被杀死时).我可以这样做:
yourClass.addKillMonsterEventListener(
new KillMonsterEventListener() {
public onKillMonster() {
System.out.println("A good monster is a dead monster!");
}
}
);
在其他地方我可以添加另一个监听器:
yourClass.addKillMonsterEventListener(
new KillMonsterEventListener() {
public onKillMonster() {
monsterCount--;
}
}
);
当你的代码通过杀死怪物的听众列表时,即
for (KillMonsterEventListener listener : listeners) {
listener.onKillMonster()
}
我的代码片段(即monsterCount–和打印输出)都被执行了.关于它的好处是你的代码完全与我的代码分离:它不知道我在打印什么,我正在减少什么变量,等等.