Я не знаю, почему у вас есть несколько классов, работающих с LDAP. Возможно, вам следует рассмотреть возможность объединения этих разрозненных операций в один класс, который несет всю ответственность за операции LDAP.
Если это невозможно, ваши инстинкты верны. Класс, который открывает соединение, должен закрыть его в блоке finally. Это должен быть класс обслуживания POJO на основе интерфейса, который знает о единице работы для этого варианта использования. Не должно быть никаких сомнений в том, где лежит ответственность. Если у вас нет такой услуги, создайте ее.
Если операции не являются частью одной единицы работы, то ими должны управлять отдельные службы. Комментарии из предыдущего абзаца по-прежнему применяются.
Вы объединяете свои соединения LDAP? Я надеюсь на это.
Я бы порекомендовал взглянуть на Spring LDAP модуль , особенно если вы уже являетесь пользователем Spring. Это упрощает работу с ресурсами LDAP так же, как и JDBC.