gpt4 book ai didi

java - Java 接口(interface)的实现应该驻留在哪个包中?

转载 作者:搜寻专家 更新时间:2023-11-01 04:04:38 25 4
gpt4 key购买 nike

假设我有一个界面:

package org.my.dicom.CEchoSCU;

public interface CEchoSCU {
// stuff here...
}

我还将有一个接口(interface)的实现:

public class SimpleCEchoSCU implements CEchoSCU {
// stuff here...
}

我的问题是,哪个包应该包含实现?我见过其他开发人员将实现与接口(interface)放在同一个包中(org.my.dicom,在这种情况下),还有使用单独包的情况(通常类似于 >org.my.dicom.impl).除了个人偏好,还有什么理由比另一个更喜欢一个?

最佳答案

一个类实现除其他外,一个接口(interface)。我会将类放在一个与类的其余部分所做/包含的内容相关的包中,而不是反射(reflect)它实现的一个接口(interface)的包。例如,如果我有 200 个实现 Printable 的类,我不会将它们全部放在一个包 com.mycompany.impl.printable 中。实现可打印的 Airplane 类将与其他飞机的东西放在一个包中。 Boat 类将与其他船类内容打包在一起。实现 Printable 的 Car 类将与其他汽车内容放在一个包中。

如果所有 SimpleCEchoSCU(以及任何其他 future 的类)所做的都是实现 CEchoSCU,那么您应该考虑将 CEchoSCU 设为抽象基类并派生不同的实现。无论哪种方式,(接口(interface)或抽象基类)事物都是完全相关的,我会将它们放在同一个包中。

关于java - Java 接口(interface)的实现应该驻留在哪个包中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12976159/

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