我发现了一些我以前从未听说过的东西,我不同意(到现在为止)。在一个(投了票而没有进一步评论)的answer中,我读到“为什么要将类和接口混合在同一个包中”。
因此,我想知道,是否有理由将Java中的接口和实现分开。
我知道,我们没有义务让所有的实现都在接口的包中,但是(有时)没有一个实现是明智的吗?
问候
麦克
[;-)
发布于 2011-01-05 10:51:43
将接口和实现保存在单独的包中的原因:
清晰的代码库--如果我们有一个带有接口的包,另一个包有实现(通常是一个something.impl名称空间),它看起来会更好,更整洁。代码结构显示/反映了您针对接口编写的代码。
访问修饰符-我们可以将包私有访问修饰符用于相关接口实现的某些包私有API。
库结构--也许有一天您决定为API (接口)和实现创建不同的库。那么,在不同的包中有接口和实现是非常好的。因此,您可以在不重构代码库的情况下更改构建。
发布于 2011-01-05 10:48:48
我同意org.life.java -我将有服务和底层的service.impl包,但总是这样的安排。
我不同意“不良做法”的措辞。那太强大了。
java.util集合API与此建议相冲突。我不想告诉约书亚·布洛赫他做了一件“糟糕的工作”。
发布于 2011-01-05 10:48:14
对于OSGi,几乎需要使用单独的包AFAIK,这样您就可以导出/导入API,而无需导出/导入实现。
但是,对于仅限于内部的接口,将所有内容保存在一个包中并不是一个问题。
https://stackoverflow.com/questions/4603152
复制相似问题