私のアプリケーションには、Foo
のオブジェクトを扱う内部ストレージ層があります。 Get操作中に、データレイヤーはクラスター取得に大きな利点がありますが、実際には、複数回は約10%の時間しかかかりません。Storage APIに特異点と複数点を定義する理想的な方法は何ですか?
アプローチA:
interface FooStorage {
Foo getFoo(String name);
List<Foo> getFoos(List<String> names);
}
アプローチB:
interface FooStorage {
List<Foo> getFoos(List<String> names);
}
class StorageUtility {
public static <T> T firstOrNull(List<T> data) { ... }
}
アプローチC:
interface FooStorage {
List<Foo> getFoos(String... names);
}
class StorageUtility {
public static <T> T firstOrNull(List<T> data) { ... }
}
Aにアプローチする欠点がある。ここで私が考えられてきた様々なアプローチがあります私がサポートする必要があるより大きな表面。
アプローチBの欠点は、私がそれを必要としない時間の90%を消費者がリストを構築していることです。 アプローチCの欠点は、リストを配列の10%時間コピーするオーバーヘッドです。
正規の正しい方法がありますか?この種の状況で