gpt4 book ai didi

java - 为什么我们在java中创建自定义事件时要使用接口(interface)?

转载 作者:行者123 更新时间:2023-11-29 04:47:26 24 4
gpt4 key购买 nike

答案here展示了在 java 中创建自定义事件的方法。我明白了答案,但我想知道他为什么使用HelloListener接口(interface)?我认为没有必要。

我的代码:

import java.util.ArrayList;
import java.util.List;

class Initiater {
private List<Responder> listeners = new ArrayList<Responder>();

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

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

for (Responder hl : listeners)
hl.someoneSaidHello();
}
}

class Responder {
public void someoneSaidHello() {
System.out.println("Hello there...");
}
}

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

我认为我编写的代码做同样的事情。我可以这样做吗?

最佳答案

可以那样做,但这不是好的设计。使用接口(interface)的原因是为了解耦行为。如果您只有一个实现并且该实现直接从“发起者”引用,则无需使用监听器。监听器的目的是将其解耦:“发起者”对监听器可能做什么或监听器可能是什么(即它的类)一无所知。由于 Java 是静态类型的,因此必须定义一个接口(interface)。然后监听器的实现可以分开。它甚至可以在一个单独的项目中并单独编译(例如,在创建库时)。

关于java - 为什么我们在java中创建自定义事件时要使用接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36628709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com