【发布时间】:2011-12-10 07:02:34
【问题描述】:
我的应用程序中有一个内部存储层,它处理Foo 对象。在 Get 操作期间,数据层对集群 get 有显着的好处,但实际上我只有大约 10% 的时间会执行多次 get。以下是我考虑过的各种方法:
方法 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% 的时间将列表复制到数组的开销。
是否有规范的正确方法来做到这一点?
【问题讨论】:
标签: java api data-access-layer