如果我知道很多子函数将使用数据库对象,我应该在main方法中获取该对象,然后将其传递给所有子函数以便重用,或者只是获取它是一个很大的问题我实际需要时来自实体经理吗?
我有多层迭代器,直到最低级别才使用该对象。现在我将它放在顶层并在实际使用之前将其传递给4层方法。
真正的问题是我想在程序的另一部分中使用其中一个中间函数,而不是进行不必要的调用来获取该对象。我只想调用这个函数。
布局是这样的:
generate()
MyObj obj = getMyObj(); // Entity Manager find
generateSubItems(obj)
generateSubSubItems(obj)
generateSubSubItemValues(obj)
// Use obj
问题是我想使用generateSubSubItems而不必调用getMyObj(),因为我必须使用它很多地方。我真的不想在一个地方散布相关的代码,而在其他地方我会希望保持尽可能干净的代码。
这样做是否会带来巨大的性能影响:
generate()
generateSubItems()
generateSubSubItems()
generateSubSubItemValues()
MyObj obj = getMyObj(); // Entity Manager find
// Use obj
我正在使用EclipseLink,Glassfish和SOFT缓存。
USAGE:每次调用将使用几百次来生成SubSubItemValues()。这种情况最有可能每天被召唤几百次。
所以它会加起来。特别是随着软件的发展。
答案 0 :(得分:0)
即使在Java EE中它仍然是Java,你只是传递对象的引用,所以它在性能方面不是很大,如果没有引用你需要传递一些可能需要的id堆栈上有很多空间。