Может быть, это может показаться немного мирским, может ли кто-нибудь сказать мне, есть ли какая-либо хорошая практика, которая говорит, что DAO не должны хранить информацию о состоянии, то есть нестатические нечетные переменные-члены? Большинство DAO, в которые я пришел, в основном содержат только статические и конечные переменные.Может ли информация о состоянии удержания DAO
public class CustomerDAO extends CommonDAO{
private String txnid;
private String txnName;
getters....setters..
}
Где я приезжаю из вне , У меня есть очень специфический сценарий, где для обеспечения входных параметров запроса требуются изменения в нескольких методах DAO, которые в данный момент я пытаюсь избежать. Поэтому мне просто интересно, могу ли я сохранить эти входы в переменной ThreadLocal, но не знал, что говорят лучшие практики. Я знаю, что это звучит так, как плохой дизайн нужно продумать. – hakish
@hakish - это похоже на то, что DAO использует шаблон [Builder] (http://en.wikipedia.org/wiki/Builder_pattern) для создания запросов, например, 'EntityManager'. Чтобы сохранить четкое разделение опасений, я бы извлек часть содержимого с учетом состояния в свой собственный класс состояния, затем передал результат в DAO или реорганизовал DAO для безгражданства, создав методы, требующие полных данных, необходимых для создания запроса , Если это приводит к слишком большому числу параметров метода, они могут быть инкапсулированы в новый тип типа «Предикаты» или аналогичные. – kostja