Yang-Pi/UniOffice

Bot singleton

Yang-Pi opened this issue · 1 comments

По исключительной задумке автора бот един для всех пользователей, если вход выполнил один, то все ждут, пока он закончит сессию, чтобы вошел в систему другой. Это настоящий модерн. Но так не должны работать программные продукты, поэтому решение есть: всю бизнес-логику выносим из класса Bot, далее при первом запуске пользователем бота заносим логин пользователя в HashMap, чтобы затем отслеживать от чьего имени пришли уведомления. Отдельно стоит рассмотреть вопросы многопоточности в таком случае, чтобы все данные были синхронизированы.

При выносе бизнес-логики удобным будет заметка о том, что метод execute() выполняет и editMessage, sendMessage и т.п., поэтому пусть в результате обработки ответа пользователя в тело непосредственно бота возвращается объект, который нужно "экзекьютить".