Class 10个Java类的层次结构会不会太多?

Class 10个Java类的层次结构会不会太多?,class,plugins,model,abstract-class,hierarchy,Class,Plugins,Model,Abstract Class,Hierarchy,我开发了一个插件加载机制,作为插件层次结构设计的结果,它主要是抽象级别的编程,并且使用尽可能少的高级编程,最顶层插件的插件类层次结构可能达到八个 我已经加载了几十个插件来延长加载时间,而且加载似乎还不错,所以我想知道除了“继承与组合”“设计问题,比如性能问题、加载或运行时问题之外,继承设计还有什么不好的副作用 我想补充说,这不是一个插件模型设计问题,这是插件模型上的应用程序设计问题,应用程序应该知道它的所有插件吗?或者应用程序应该定义插件,这些插件可能有自己的插件,而主应用程序不会知道这些插件。

我开发了一个插件加载机制,作为插件层次结构设计的结果,它主要是抽象级别的编程,并且使用尽可能少的高级编程,最顶层插件的插件类层次结构可能达到八个

我已经加载了几十个插件来延长加载时间,而且加载似乎还不错,所以我想知道除了“继承与组合”“设计问题,比如性能问题、加载或运行时问题之外,继承设计还有什么不好的副作用

我想补充说,这不是一个插件模型设计问题,这是插件模型上的应用程序设计问题,应用程序应该知道它的所有插件吗?或者应用程序应该定义插件,这些插件可能有自己的插件,而主应用程序不会知道这些插件。这个设计适合我,它节省了我的编码时间,问题是它在运行时的表现如何

提前感谢,


亚当·泽哈维。

一般来说,不要担心数字。担心设计。如果设计要求一个深层次的层次结构,那么就这样吧。如果你重视数字而不是设计,也许你不应该设计。

我认为深层次的问题与性能没有太大关系。 更多的是关于代码的可维护性。无论如何,如果你觉得需要这样一个深层次的层次结构,就使用它,或者发布更多的细节

当然,你必须注意你在做什么。例如:

public someClassDeepLevel0{ public void foo(){do something}}
.....
public someClassDeepLevel10 extends someClassDeepLevel9{
public void foo(){
 //do something
 super.foo();
}
}

对foo()的调用数量与层次结构的深度成正比。如果您正在做这样的事情,那么性能可能非常相关

代码实际上很容易维护。而深层层次结构对于允许各种插件(它们有自己的逻辑)和模型添加到主应用程序是必要的。没有太多已实现的方法被覆盖,大多数已实现的方法可能会最终确定,更高级别的方法对它们没有任何用处,因为它们的逻辑已经在父插件中实现。不要光顾,你还没有看到设计或实现!出于对性能的考虑,我问了一个问题。。。或者类似的东西,如果你认为我是否应该设计的话就不需要了。@TacB0sS:我并不是想占上风,但我想说的是,设计比计算层次深度更重要@0verbose指出了一个很好的潜在性能问题,但我无法知道您是否存在该问题。通常,如果您有性能问题,请通过探查器运行代码并查看瓶颈所在。可能会遇到@0verbose这样的情况,但在我们提出更好的建议之前,您需要提供此层次结构中实际代码的详细信息。谢谢,我会在应用程序完全运行后立即查看探查器。