场景是我需要至少访问一个值两次。即我正在使用记录器来跟踪应用程序中发生的事情。我想记录对象的名称,该函数正在运行,然后用相同的名称做一些事情(即检查它是否包含一些字符串或将其放入数组中)。
将名称存储在变量中:
foo(Bar bar){
String name = bar.getName();
logger.info("I am working with "+name);
this.doSomethingWith(name);
}
或者调用 getName() 两次:
foo(Bar bar){
logger.info("I am working with "+bar.getName());
this.doSomethingWith(bar.getName());
}
我了解,在第一种情况下,我将创建一个新字符串,为其分配一个值,然后检索该值两次。这样我使用了更多的内存资源,对吗?
在第二种情况下,我是否两次访问对象栏,然后两次访问它的名称。我想这不是 DRY 方法。但另一方面,我并没有在记忆中重复自己,对吗?
哪种方法更好?