gpt4 book ai didi

java - 组织 Java 包内容的标准方式是什么——特别是接口(interface)和抽象类的位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:47 25 4
gpt4 key购买 nike

我想这可能适用于许多 OO 语言。我正在构建我的域对象,但不确定接口(interface)和抽象类的最佳位置。

如果我有一个 pets 包,其中包含 APet 抽象类的各种实现:它应该与它们并存还是在父包中?

接口(interface)怎么样?看起来它们几乎必须位于父包中的实现之上,因为可能有其他子包实现它,而一个抽象类和子包之间似乎有更强的相关性。

例如

com.foo
com.foo.IConsumer (interface)
com.foo.APet (abstract)
com.foo.pets.Dog extends APet implements IConsumer

com.foo
com.foo.IConsumer (interface)
com.foo.pets.APet (abstract)
com.foo.pets.Dog extends APet implements IConsumer

还是别的?

最佳答案

IMO 接口(interface)和抽象类在这方面没有太大区别。通常最好将实现保存在单独的包中,特别是如果它们是通过工厂实例化的。通过这种方式,这些可以保持包私有(private),因此它们的实现细节可以更好地向客户隐藏。

所以我会选择第一个选择。

关于java - 组织 Java 包内容的标准方式是什么——特别是接口(interface)和抽象类的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3024580/

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