首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非公开课程在哪里?

非公开课程在哪里?
EN

Stack Overflow用户
提问于 2011-06-30 09:50:19
回答 3查看 1.9K关注 0票数 3

假设我有一个Java类A,它需要一个助手类B。该助手类仅在A中使用,没有其他用途。另外,B不需要以任何方式使用A (不要调用方法或访问字段)。

所以,问题是:把B放在哪里?

有以下几种选择:

  1. 静态嵌套类在我看来,它只是使代码变得不那么清晰(缩进等等)。 公共甲级{ ..。私有静态类B{.}
  2. 同一来源中的非公共类。我喜欢这个选择。 公共A类{.}B类{.}
  3. 独立源中的非公共类。不过,看起来这个选项有点开销。 // A.java公共类A{.} // B.java类B{.}

现在,我更喜欢第二种选择。你对此有何看法?什么是最佳做法?有没有权威的消息来源?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-30 09:55:02

我强烈赞成备选案文(1)。其思想是,类B只需要类A,选项(1)是唯一清楚地表达这种意图的选择:类B是类A的一部分。

票数 5
EN

Stack Overflow用户

发布于 2011-06-30 09:53:08

有用吗?

没有严重的缺点,但至少可以找出以下几个方面:

  • 很难理解,特别是对于非经验程序员来说,他们可能发现很难编码、增强和维护。
  • 更多的类--它肯定会增加应用程序使用的类的总数。对于加载到内存中的每个类,JVM都为其创建一个class类型的对象。可能还有其他一些常规任务,JVM可能需要对所有额外的类执行这些任务。如果应用程序使用多个嵌套/内部类(可能是由于设计不当),这可能会导致性能稍慢一些。
  • 工具/IDE嵌套类的有限支持与顶级类在大多数工具和IDE中得到的支持不同。这可能有时会激怒开发人员。
票数 1
EN

Stack Overflow用户

发布于 2011-06-30 09:58:12

您可以在A.Better封装中使用静态嵌套类,因为嵌套类是将仅在一个地方使用的类进行逻辑分组的一种方式。您的助手类只包含字段吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6532949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档