gpt4 book ai didi

Java类的用途非常有限,但不限于一个类。外在还是内在?

转载 作者:行者123 更新时间:2023-12-01 12:11:20 24 4
gpt4 key购买 nike

假设我有一个抽象类 AbstractBarrelComponent,它扩展了 Component 类。该类使用名为 Barrel 的类来实现某些想象的目的。

如果唯一可以/应该使用 Barrel 类的类是 AbstractBarrelComponent 及其子类,那么我的 Barrel 类应该驻留在哪里?

我所说的“驻留”是指该类应该位于其自己的文件 Barrel.java 中,还是应该是 AbstractBarrelComponent.java 中受包保护的类?对于这种情况有通用的约定吗?

最佳答案

不同的程序员和组织对此使用不同的标准,我认为没有一个正确的答案。重要的是选择一个标准并坚持下去。

我个人的标准是内部类始终是私有(private)的。如果子类需要访问它,那么它要么应该位于外部 protected 类中,要么应该通过委托(delegate)提供对其方法的访问。唯一的缺点是你最终会得到更多的小类授课。但是,坦率地说,现代干净的编码风格依赖于良好的 IDE,这些 IDE 可以轻松地在代码中导航,因此对导航类进行分组的需要基本上已经消失了。

顺便说一句,我觉得不幸的是,Java 的设计者没有区分 protected 子类访问和 protected 同一 namespace 中的所有类的访问。这些确实是完全独立的用例。在您的情况下,倾向于将其设为内部 protected 类而不是外部 protected 类,以限制对子类的访问。如果这两种用途有一个单独的关键字,那就更好了。

关于Java类的用途非常有限,但不限于一个类。外在还是内在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27261356/

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