シナリオは、値に少なくとも 2 回アクセスする必要があるというものです。つまり、ロガーを使用して、アプリケーションで何が起こっているかを追跡しています。オブジェクトの名前をログに記録したいのですが、その関数は機能しており、後でまったく同じ名前で何かを行います(つまり、文字列が含まれているかどうかを確認するか、配列に入れます)。
名前を変数に格納する:
foo(Bar bar){
String name = bar.getName();
logger.info("I am working with "+name);
this.doSomethingWith(name);
}
または getName() を 2 回呼び出します。
foo(Bar bar){
logger.info("I am working with "+bar.getName());
this.doSomethingWith(bar.getName());
}
最初のシナリオでは、新しい文字列を作成し、それに値を割り当ててから、この値を 2 回取得することを理解しています。このようにして、より多くのメモリ リソースを使用していますよね?
2 番目のシナリオでは、オブジェクト バーに 2 回アクセスしてから、その名前に 2 回アクセスしていますか。これは DRY アプローチではないと思います。しかし一方で、私は記憶の中で自分自身を繰り返していませんよね?
どちらのアプローチが優れていますか?