Я пишу клиентскую библиотеку для веб-службы с использованием CXF.Служба использует изменяемый ключ для управления сеансами и, при необходимости, позволяет поддерживать сеанс в рабочем состоянии.
Я создал клиент Client
и хочу предоставить возможность использования библиотеки для выбора типа управления сеансом, т. Е. Либо менеджера, который просто управляет ключами, но не пытается сохранить работоспособность, именеджер, который управляет ключами и поддерживает сессию.
Я думал о наличии поля SessionManager
в классе Client
(с классом SimpleSessionManager
и классом KeepAliveSessionManager
), но, чтобы поддержать сеанс, KeepAliveSessionManger
должен был бы вызвать метод класса Client
.Это означало бы, что класс Client
имеет ссылку на класс SessionManager
, а класс SessionManager
будет иметь ссылку на класс Client
- что, очевидно, является не элегантным дизайном.
предложить шаблон проектирования (или альтернативную реализацию), который позволил бы мне реализовать эти функции «лучше»?
Cheers,
Pete