gpt4 book ai didi

java - 为什么回调方法需要返回一些东西?

转载 作者:行者123 更新时间:2023-12-01 06:50:34 25 4
gpt4 key购买 nike

我以前从未见过这样的事情,所以假设我有这样的监听器对象:

MyWhateverListener dafuqListener = new MyWhateverListener() {

@Override
public void onSuccessCall(String s) {
// success call
}

@Override
public void onFailCall(boolean b) {
// fail call
}

@Override
public boolean onDafuqCall(int i, boolean b) {
// some whatever code
return false;
}
};

一切都很好,当某些操作成功时,将回调适当的方法,但是这个 return 是怎么回事?里面onDafuqCall方法,为什么需要它,它会在哪里返回一些东西?

附注该接口(interface)来自Android广告提供商的SDK。

最佳答案

这确实是一件很正常的事情。监听器/观察者接口(interface)与主题/事件抛出类配对。通常,您希望听众与主体的行为完全脱节,以至于主体既不知道也不关心注册了多少听众。这是“纯粹”模式。这是最常见的,所有方法都为空是有意义的,因为它们仅由主体调用,并且主体行为不依赖于其监听器。

但是,有时对于监听器来说,拥有主体不打算调用的其他方法,以及监听器充当主体状态与程序其他部分之间的桥梁是有意义的。一个常见的例子是为调试创建特殊的监听器。在这里,您创建一个新的监听器,它扩展了以前的监听器,但它还准确跟踪主题调用它的时间,然后它有一个带有返回值的方法,以便您的测试代码可以访问此状态,并准确查看该状态听众正在做的事情。

最后,拥有影响主体行为的听众有时是有意义的。在这种情况下,返回方法是必要的。但这是罕见的并且并非没有危险,有时会使用它,例如确保以正确的顺序删除链中的内容。因此,如果您未能删除子项,则可以停止删除链。它有一个名字,但我现在记不清这个模式叫什么了。

关于java - 为什么回调方法需要返回一些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30940243/

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