接口是否会因为减少Java编译器或Eclipse中的依赖关系而影响性能?

接口是否会因为减少Java编译器或Eclipse中的依赖关系而影响性能?,java,eclipse,performance,architecture,interface,Java,Eclipse,Performance,Architecture,Interface,假设两种不同的情况: a) 每个(服务)类X都有一个接口X和一个实现XImpl。每个其他(服务)类(例如YImpl)总是通过接口(X)与其他(服务)类交互,但从不直接引用实现类(XImpl)——这至少是一种非常常见的模式 b) 就像a)但是没有所有的接口。只有XImpl和YImpl它直接指YImpl (我想我知道a)和b)的很多目的,所以请不要在这里讨论。) 我的问题是:当使用Eclipse、Maven和M2E1.0时,变体b)是否会对性能产生负面影响 我可以想象这一点,因为我有办法a)而你

假设两种不同的情况:

  • a) 每个(服务)类X都有一个接口
    X
    和一个实现
    XImpl
    。每个其他(服务)类(例如
    YImpl
    )总是通过接口(
    X
    )与其他(服务)类交互,但从不直接引用实现类(
    XImpl
    )——这至少是一种非常常见的模式
  • b) 就像a)但是没有所有的接口。只有
    XImpl
    YImpl
    它直接指
    YImpl
(我想我知道
a)
b)
的很多目的,所以请不要在这里讨论。)

我的问题是:当使用Eclipse、Maven和M2E1.0时,变体b)是否会对性能产生负面影响


我可以想象这一点,因为我有办法
a)
而你在
XImpl
中编辑了一些东西,这不会影响
YImpl
,因为它们被接口
X
完全解耦。但是在删除
b)
中的接口时,它们不再是解耦的。

您不希望牺牲应用程序的设计,每次Eclipse或Maven编译类时都能获得2微秒的时间。顺便说一句,如果编辑XImpl,它必须检查它是否仍然遵守YImpl使用的X接口的约定,因此它可能没有任何区别。

调用调用接口调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用调用,但我相信HotSpot可以优化一对一的场景(如果我有参考资料,我会将其作为答案而不是评论发布)。接口的使用或停用应由体系结构和可维护性问题决定。它们很容易被过度使用,但它们有自己的位置。@Barend Garvelink:运行时性能指标是明确的,这不是问题的重点。是的,这是关于架构的,因为至少界面没有其他要求,所以我最后担心的是编辑器会带来麻烦。哦,对不起,我对这个问题读得不够好。@meriton:这是一个关于架构的一般性问题。但在混凝土中,大约有50到100种这种服务。但是在完整的eclipse项目中,完整的代码库大约是500到1000个类,外加150到200个外部JAR。这50到100个服务的工作方式有点像中心类,因此它们引用了许多其他类。“如果编辑XImpl,它必须检查它是否仍然遵守YImpl使用的X接口的约定”。是的,但它可以停止。如果没有接口,我不知道Eclipse在哪里停止验证过程,或者至少它是否有显著的区别。