【发布时间】:2010-10-26 21:41:50
【问题描述】:
我真的有两个问题:
1) 你什么时候会使用包私有接口?
2) 有没有办法让公共接口关闭以在其包之外实现?
【问题讨论】:
标签: java oop api-design
我真的有两个问题:
1) 你什么时候会使用包私有接口?
2) 有没有办法让公共接口关闭以在其包之外实现?
【问题讨论】:
标签: java oop api-design
包私有接口仅在策略模式的此类实现的情况下有用,在这种情况下,您可能希望使用多种实现,但不希望世界知道这些类型。
【讨论】:
1) 你的包中可能有多个类使用的实用方法,这些方法永远不应该被外部调用。或者它们可能只有一个类需要,但该类太大了,您想将一些方法移到另一个类以实现可维护性。
2) 我必须尝试一下(抱歉,我现在要赶出门了),但是您可以有效地通过在接口中声明一个受保护的默认构造函数来做到这一点.
【讨论】:
1) 当只在你的包范围内需要接口时。例如,接口可以使您的代码更具可读性,但包的调用者不需要它。
2) 不,这是不可能的。请参阅此link 了解更多信息。接口没有定义实现。那你怎么能关闭它来实现呢?
【讨论】: