0

我有一个定义HugeClass公共方法的类addButton()

public class HugeClass{

public void addButton(){ etc... }
public HugeClass getHugeClass(){ etc... }

...lots of big number crunching logic...

}

有一个类叫它myController调用getHugeClass()

public class printController{
   ...
   myController.getHugeClass().addButton();    
}

我们的客户希望我们不要调用getHugeClass()printController因为代码很长并且占用大量内存,因为它处理前端显示字段的逻辑。有更好的解决方案吗?

我正在考虑扩展HugeClassprintHugeClass然后调用它printController。性能会更好,还是一样,因为它以一种方式调用原始HugeClass类并且还必须运行整个父类?

4

4 回答 4

2

要么addButton需要一个正确构造的实例HugeClass,而且你无法避免它(子类化不会产生影响)。

或者您不需要HugeClass调用包含的所有细节addButton,也许是时候考虑拆分HugeClass成更小的独立组件了。

参看。这篇关于 SRP(单一职责原则)的帖子。

于 2012-09-18T17:05:56.143 回答
0

这完全取决于getHugeClass().pritnController

..lots of big number crunching logic...

如果您可以避免这些语句,那么HugeClass在您覆盖时扩展将解决您的问题getHugeClass()

于 2012-09-18T17:06:01.367 回答
0

多少addButton()取决于其余部分HugeClass?如果这个类变得如此庞大,那么可能值得重构它并将所需的部分移动addButton()到另一个新类中。

于 2012-09-18T17:06:49.280 回答
0

首先,不管你的类在java中有多大,类加载器只会加载一次。您的性能问题与其他问题有关,并发现您应该使用分析工具。

我的建议:如果你有性能问题,不要做任何假设,它可以是任何东西。当然它与java加载类的速度无关,除非你在静态初始化块中没有逻辑。

于 2012-09-18T23:29:11.627 回答