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