Я занимаюсь разработкой веб-приложения с использованием Javalin.У меня есть несколько классов контроллеров, которые обрабатывают мою маршрутизацию для меня.Предполагается, что каждый контроллер связан с одним типом таблицы POJO / DB.Например, у меня есть контроллер Employee, который маршрутизирует и отображает страницы, связанные с POJO сотрудника.Контроллер Employee (на бэкэнде) в первую очередь ссылается на Dao-службу Employee, которая затем запрашивает таблицу Employee в базе данных.Пока все хорошо, верно?
Мой вопрос: некоторые из моих страниц веб-интерфейса ДОЛЖНЫ содержать подробности из других таблиц, что означает, что я создаю экземпляр других служб DAO в моем контроллере Employee, например, иногда янужно GroupDaoService и LocationDaoService, потому что несколько страниц сотрудников также отображают информацию о группе и местоположении.Я предполагаю, что это требует немного памяти, потому что каждый раз, когда загружается другая страница, используется другой набор DaoServices.Итак, мой вопрос, должны ли эти DaoServices быть Singletons?Имеет ли смысл иметь один EmployeeDaoService?Базовый класс пула соединений с базой данных, который используют эти различные DaoServices, уже является Singleton.Должен ли я следовать этому же шаблону с моими DaoServices?
Имеет ли смысл перформативно преобразовывать мои DaoServices в синглтоны?
Вот примерная часть EmployeeController, в которой потребуется реализовать 3 или 4 другихтипы DAO помимо EmployeeDao, что и вызвало этот вопрос.
` public static Handler serveUserDetails = ctx -> {
List<Integer> recCounts = mainSVC.getTotalRecords();
Map<String, Object> pdata = new HashMap();
String userID = ctx.pathParam(":id");
pdata.put("numEvents", recCounts.get(0));
pdata.put("numSites", recCounts.get(1));
pdata.put("numUsers", recCounts.get(2));
pdata.put("user", userSVC.getEmployee(Integer.parseInt(userID)));
pdata.put("groups", groupSVC.getGroups());
pdata.put("schedules", schedSVC.getSchedules());
pdata.put("webuser", W_EMP);
ctx.render("/templates/userdetail.vtl", pdata);
};`