Russian Qt Forum
Ноябрь 22, 2024, 01:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Пакеты данных между сервером и клиентами  (Прочитано 7289 раз)
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« : Апрель 21, 2023, 23:42 »

Всем привет.
У меня между сервером и клиентами бегают пакеты с формате JSon. Формирую я их с обоих сторон.
Например клиент регистрируется и вводит данные(создается класс с enum о том что это регистрация), сервер принял отправил ответ(формируется другой класс, enum с тем что success и так же какое то сообщение типа alert). Клиент подключается, данных чуть меньше чем для регистрации, так же класс с меткой, сервер ответил, опять пакет с меткой.
Как видно куча классов со своей меткой, небольшые отличия у некоторых по данным что они собирают.

Можно ли как то изящнее придумать чтобы не плодить кучу классов(у меня уже их больше 10)?
Посоветуйте пожалуйста как с такими пакетами можно лучшую работу организовать?
Спасибо
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Апрель 22, 2023, 10:02 »

можно классы заменить просто функциями, если там немного параметров. а в целом, ничего плохого в том, что у тебя много классов, нет.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #2 : Апрель 22, 2023, 13:51 »

можно классы заменить просто функциями, если там немного параметров. а в целом, ничего плохого в том, что у тебя много классов, нет.

Тут скорее был вопрос не про плохо ли это, а про то что может есть еще какой то способ с большим количеством пакетов(а следовательно и классов).
Один класс например от другого отличается в +1 строку данных. Еще и придумывать именование этих классов, жесть.
Думал в сторону шаблонов, но чувствую что это только ухудшит и читаемость и понимание. Да еще и путаницу наведу самому же себе.
Записан
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #3 : Апрель 22, 2023, 13:59 »

Вот например для подключение у меня класс Connect в котором выставляется маркер enum E_CONNECT, а вот если подключение прошло то обратно летит ConnectSuccess с маркером enum E_CONNECTSUCCESS

Вот и думаю что я тут чет не правильно реализовал. Или класс на конект и результат должен быть один типа Connect но уже с разными маркерами. Или просто классы RequestConnect и AnswerConnect.
В общем ищу какое то изящное решение)
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Апрель 22, 2023, 18:17 »

разные классы для request и response — абсолютно нормальный подход, ведь это ж разные сущности. ну можно их унаследовать от базового класса с параметром, если хочешь.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.077 секунд. Запросов: 22.