В Hibernate лучше ли возвращать один объект или список <T>только с одним элементом? - PullRequest
0 голосов
/ 14 марта 2011

Скажем, у меня есть класс Foo, и у меня есть FooRepository класс с методом select().

Метод select() возвращает коллекцию объектов List<Foo>.

Теперь я хочу метод select_one(), который всегда возвращает один объект. Лучше ли возвращать тип Foo или List<Foo> только с элементом ONE в списке? Я говорю о производительности и лучших практиках.

Спасибо

1 Ответ

2 голосов
/ 14 марта 2011

По производительности всегда лучше возвращать один объект.

Но, с точки зрения дизайна, это действительно зависит от кода, который использует ваш класс.Если вы хотите принять проектное решение о том, что все методы должны возвращать списки, потребительский код всегда может написать код, подобный следующему:

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 много раз, так как он создает много списков и, следовательно, использует больше памяти и может работать медленнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...