gpt4 book ai didi

java - 对如何用Java编写接口(interface)感到困惑

转载 作者:行者123 更新时间:2023-12-01 17:19:15 24 4
gpt4 key购买 nike

我正在编写一些接口(interface),但我现在的方式似乎违背了接口(interface)的目的。原因是我需要先实例化实现的实例,然后才能使用该接口(interface),如下所示:

Interface interfaceName = new InterfaceImplementation(someRequiredValueForConstructor);

这对我来说没有意义,因为我相信接口(interface)的要点是用户不应该调用实现,但有必要按照我现在设置它们的方式来调用实现。接口(interface)被声明为接口(interface),实现被声明为实现该接口(interface)的类。我应该如何设计我的接口(interface),以便用户不必直接使用实现?

最佳答案

接口(interface)的要点是指定所有实现都遵循的契约。实例化时必须使用某种特定的实现,否则您会选择哪种实现?

使用界面输入内容的优点是,如果需要,您可以轻松地换出实现(例如,将 ArrayList<T> 换成 LinkedList<T> ;如果您使用 List<T> 输入变量,则此更改应该是无缝的)。使用接口(interface)还可以使您的代码与特定实现的紧密耦合程度大大降低。

此外,当您使用依赖注入(inject)或控制反转之类的东西时,您可以使用接口(interface)键入依赖项。如果您使用的是支持的框架(例如 Spring),它可能会足够聪明地为您找到实现。您还可以告诉框架使用该接口(interface)的特定实现。但关键是您的代码不需要任何特定实现,这意味着您可以在将来根据需要将它们切换出来。

关于java - 对如何用Java编写接口(interface)感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19935125/

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