Архитектура - Dmi3Iva/IRC GitHub Wiki

MindMap link

Проект состоит из четырёх основных сущностей:

  1. Server
  2. Context
  3. User
  4. Channel
  5. ACommand

Server

Что делает?

  • Устанавливает соединение
  • В постоянном рантайме:
    • Проверяет новые сообщения, если такие есть обрабатывает их
    • Удаляет отвалившихся пользователей

Context

Что делает?

  • Принимает комманды на исполнения от User и передаёт исполнение в один из подклассов ACommand.
  • Связывает комманды с другими сущностями

User

Что делает?

  • Обрабатывает запросы от User

Channel

Что делает?

  • Хранит информацию о канале

ACommand

Что делает?

  • Абстрактный класс, от которого наследуются остальные комманды