【问题标题】:Can someone summarise visibility choices for Java interfaces?有人可以总结一下 Java 接口的可见性选择吗?
【发布时间】:2010-10-26 21:41:50
【问题描述】:

我真的有两个问题:

1) 你什么时候会使用包私有接口?

2) 有没有办法让公共接口关闭以在其包之外实现?

【问题讨论】:

    标签: java oop api-design


    【解决方案1】:

    包私有接口仅在策略模式的此类实现的情况下有用,在这种情况下,您可能希望使用多种实现,但不希望世界知道这些类型。

    【讨论】:

      【解决方案2】:

      1) 你的包中可能有多个类使用的实用方法,这些方法永远不应该被外部调用。或者它们可能只有一个类需要,但该类太大了,您想将一些方法移到另一个类以实现可维护性。

      2) 我必须尝试一下(抱歉,我现在要赶出门了),但是您可以有效地通过在接口中声明一个受保护的默认构造函数来做到这一点.

      【讨论】:

      • 您不能在接口中声明构造函数,请注意。上面的注释是对的,如果它是公开的,它可以在任何地方实现。
      【解决方案3】:

      1) 当只在你的包范围内需要接口时。例如,接口可以使您的代码更具可读性,但包的调用者不需要它。

      2) 不,这是不可能的。请参阅此link 了解更多信息。接口没有定义实现。那你怎么能关闭它来实现呢?

      【讨论】:

        猜你喜欢
        • 2012-03-15
        • 2017-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-19
        • 1970-01-01
        • 2014-04-23
        • 1970-01-01
        相关资源
        最近更新 更多