【问题标题】:Many .java files with just one public interface and one function许多 .java 文件只有一个公共接口和一个函数
【发布时间】:2015-12-08 22:08:17
【问题描述】:

我意识到每个公共接口都必须放在一个单独的文件中。

也许我做错了什么,但这迫使我创建许多内部几乎没有内容的虚拟文件。

当有人浏览我的包文件夹,想知道发生了什么,而每一秒的 .java 文件都只是单行公共界面......他会不高兴。

换句话说,在我看来,实际上有一些内容的类将在公共接口虚拟文件的海洋中丢失。

是否有一些策略来解决这种不便?


编辑:情况描述(和示例):

我正在制作一些游戏。我有很多从父 GameObject 派生的类,它们实现了一些行为,但不是简单的层次结构。因为java不允许从多个父类继承,所以我必须通过接口来实现。大多数类实现了多个接口,但只是所有接口的一个子集。接口不遵循继承结构。

示例:

Tank 类是MilitaryUnit 的子类(它实现了接口Fighting),但它也实现了接口Vehicle,Drawable,IndustrialProduct,Tradable,SaveFileItem,StringIO, TableIO,MouseInteracting,KeyboardInteracting ...等

另一方面,Rifleman 也是 MilitaryUnit 的子级,但没有实现 IndustrialProduct,Tradable

ArmoredTrain(也是MilitaryUnit 的子级)确实实现了Train 接口,而TankRifleman 没有。

其他类如Commodity实现IndustrialProduct,Tradable,StringIO,TableIO但不是Vehicle,Drawable,MouseInteracting,KeyboardInteracting

所以这种情况可以用某个表来描述(它指定某个类是否实现某个接口)看起来像这样:

Interface  X Y Z W    
ClassA     1 1 0 1
ClassB     0 1 1 1
ClassC     0 1 0 1
ClassD     1 0 1 0

【问题讨论】:

  • 这听起来不对,但除非您举一些例子说明您的意思,否则我们无法帮助您。
  • 不知道你想问什么具体问题

标签: java interface packaging organization


【解决方案1】:

如果您要创建一个只在一个类中实现的接口,那么接口就没有用处。接口用于生成许多类所必需的功能。当所讨论的类不是您希望它执行的操作的实例(这将是一个子类)但必须包含您希望通过实现实现的某些值时,通常使用实现。

【讨论】:

  • ad 如果你正在制作一个只能在一个类中实现的接口,那么接口就没有用了。 - 事实并非如此,解释一下我添加了上面的描述
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
  • 2011-12-23
  • 2013-06-03
  • 1970-01-01
  • 2021-03-01
  • 2011-05-04
  • 1970-01-01
相关资源
最近更新 更多