gpt4 book ai didi

java - 单一方法类与接口(interface)实现

转载 作者:行者123 更新时间:2023-12-02 11:53:01 25 4
gpt4 key购买 nike

想象一下以下界面:

public interface ActivationFunction {
double calculate(double value);
}

有两个类似的实现:

基于类别:

public class SignFunction implements ActivationFunction {
@Override
public double calculate(double value) {
return value >= 0.0 ? 1.0 : -1.0;
}
}
...
final SignFunction signFunction = new SignFunction();

基于接口(interface):

public interface SignFunction extends ActivationFunction {
@Override
default double calculate(double value) {
return value >= 0.0 ? 1.0 : -1.0;
}
}
...
final SignFunction signFunction = new SignFunction() {
};

哪一个更可取,为什么?

感谢您的意见

最佳答案

两者都工作得很好,因此在某种程度上,这只是个人喜好以及如何在您的应用程序中使用它的问题。在类似的情况下,我会选择其中一种机制并使用它,直到明确一种方法比另一种方法更合适为止。

如果您现在想尝试做出“正确”的决定,那么接口(interface)机制的主要优点(无论如何在我看来)是它允许类的行为由多个接口(interface)组成。您可以拥有一个从多个接口(interface)获取函数实现的类,而这是通过普通的旧类继承无法做到的。

另一个优点是它强制函数成为无状态的,这使得调试它们和理解它们变得更容易。也不太可能有人不必要地将状态引入到您的函数中。

正如本文的另一个答案所说明的那样,缺点是并非所有开发人员都意识到您可以在接口(interface)中实现,因此您可能会受到其他开发人员的一些反对。

您还需要在某处实例化一个对象,以便能够调用接口(interface)上的方法。

关于java - 单一方法类与接口(interface)实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47759826/

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