在 Java 中创建自定义事件

新手上路,请多包涵

我想在 Java 中做这样的事情,但我不知道方法:

当事件“对象 1 说‘你好’”发生时,对象 2 通过说“你好”来响应该事件。

有人可以给我提示或示例代码吗?

原文由 conmadoi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 357
2 个回答

您可能想研究 观察者模式

下面是一些示例代码,可帮助您入门:

 import java.util.*;

// An interface to be implemented by everyone interested in "Hello" events
interface HelloListener {
    void someoneSaidHello();
}

// Someone who says "Hello"
class Initiater {
    private List<HelloListener> listeners = new ArrayList<HelloListener>();

    public void addListener(HelloListener toAdd) {
        listeners.add(toAdd);
    }

    public void sayHello() {
        System.out.println("Hello!!");

        // Notify everybody that may be interested.
        for (HelloListener hl : listeners)
            hl.someoneSaidHello();
    }
}

// Someone interested in "Hello" events
class Responder implements HelloListener {
    @Override
    public void someoneSaidHello() {
        System.out.println("Hello there...");
    }
}

class Test {
    public static void main(String[] args) {
        Initiater initiater = new Initiater();
        Responder responder = new Responder();

        initiater.addListener(responder);

        initiater.sayHello();  // Prints "Hello!!!" and "Hello there..."
    }
}


相关文章: Java:创建自定义事件

原文由 aioobe 发布,翻译遵循 CC BY-SA 3.0 许可协议

你想要的是 观察者模式 的实现。你可以完全自己做,或者使用 java 类,比如 java.util.Observerjava.util.Observable

原文由 Bozho 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题