@HVV777

Как правильно привязать объект к коллекции из которой его взяли?

В общем ситуация следующая: есть менеджер пулов соединений, у которого есть методы открыть соединение (достать из определенного пула) и закрыть (вернуть в тот пул, из которого соединение было взято). Т.е. необходим механизм, который бы понимал к какому пулу принадлежит то или иное соединение.

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

---
Попробовал ключем мапы сделать Object и добавлять объект подключения. Все работает. Надеюсь это правильное решение.
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Не знаю, что за соединения у тебя, но этой мапой надо правильно пользоваться. А практика показывает, что если чем-то можно воспользоваться неправильно, то это произойдет.
Я бы предложил врапперы над пулом и соединением.
У враппера пула метод obtain, который берет из пула соединение, создаёт над ним обёртку, в которую также ложит сам пул.
У враппера соединения метод release, который ложит соединение в пул.
Т.о., при работе с пулами чисто через эти обёртки, воспользоваться неправильно нельзя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы