假设我上课Foo
并且我有一个FooRepository
课,其方法为select()
。
select()
方法返回List<Foo>
个对象集合。
现在,我想要一个始终返回单个对象的select_one()
方法。是否最好只返回列表中 ONE 项目的Foo
或List<Foo>
类型?我说的是性能和最佳实践。
由于
答案 0 :(得分:2)
性能方面,返回单个对象总是更好。
但是,从设计的角度来看,它实际上取决于消耗你的类的代码。如果您想做出所有方法都应返回列表的设计决策,那么使用者代码总是可以编写如下代码:
List<Foo> listOfObjects = yourClassInstance.select();
// or
List<Foo> listOfObjects = yourClassInstance.select_one();
foreach(Foo foo in listOfObjects)
{
// process the selected objects..
}
所以,这取决于你最关心的事情,这取决于你。
但请记住,List有开销,因为在内部它总是创建一个T类型的数组,以及其他辅助成员。如果您希望消费者多次调用创建 list-of-one 的代码,这将变得非常重要,因为它会创建许多列表,因此会耗尽更多内存并且可能会更慢。