powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите с организацией структуры классов
8 сообщений из 8, страница 1 из 1
Помогите с организацией структуры классов
    #39737030
Butthurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Подскажите как лучше всего организовать структуру классво для реализаци следующего:
Программа должна работать с "сообщениями", которые представленны ввиде структур. Каждая структура состоит из одного заголовка и N записей.

То есть:

MessageX{
Header header{
Type1 field1;
Type2 field3;
Type3 field3;
...
TypeN fieldN;
}

Content[] content{
Type1 field1;
Type2 field2;
Type3 field3;
Type4 field4;
...
TypeX fieldX{
Type1 field1;
Type2 field2;
Type3 field3;
...
TypeN fieldN;
}
...
TypeN fieldN;
}
}

То есть в Content могу содержаться как одиночные значение типов Type1..N, так и значение которые включают в себя набор значений.

Что-то я как не думаю все запутываюсь =(( Простите за глупый вопрос, просто новичек ещё.
...
Рейтинг: 0 / 0
Помогите с организацией структуры классов
    #39737104
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Butthurt,
Ну дак обычно моделируют предметку. Сущности. Это всегда проще.
Напр. Накладная, Товары, Лузеры).
...
Рейтинг: 0 / 0
Помогите с организацией структуры классов
    #39737166
Butthurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Примерно так.
На сервер для обработки приходят запросы, которые состоят из двух блоков:
1) Заголовок
2) Содержимое.

Таких сообщений может быть порядка 30-40 типов. Все они отличаются только набором данных.

Заголовок грубо говоря состоит из полей:
Заголовок.
-Тип сообщения Int обязательный, длинна 4
-Идентификатор отправителя Long, обязательный, длинна 15
-Идентификатор получателя Long, обязательный, длинна 15
-Дополнительно String, не обязательный, длинна 255
-Количество вложений, Int, обязательный, длинна 3
(Но набор полей в заголовке может менятся в зависимости от типа сообщения)

Дальше в сообщении идут записи (их количество перечисленно в заголовке)

Содержить могут произвольный набор полей Всех типов. Но вся заковырка в том что один из типов внутри записи, это вложенная запись с произвольным количествои полей всех типов.

Как то так.
...
Рейтинг: 0 / 0
Помогите с организацией структуры классов
    #39737168
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ButthurtЗдравствуйте. Подскажите как лучше всего организовать структуру классво для реализаци следующего:
Программа должна работать с "сообщениями", которые представленны ввиде структур. Каждая структура состоит из одного заголовка и N записей.

То есть:

MessageX{
Header header{
Type1 field1;
Type2 field3;
Type3 field3;
...
TypeN fieldN;
}

Content[] content{
Type1 field1;
Type2 field2;
Type3 field3;
Type4 field4;
...
TypeX fieldX{
Type1 field1;
Type2 field2;
Type3 field3;
...
TypeN fieldN;
}
...
TypeN fieldN;
}
}

То есть в Content могу содержаться как одиночные значение типов Type1..N, так и значение которые включают в себя набор значений.

Что-то я как не думаю все запутываюсь =(( Простите за глупый вопрос, просто новичек ещё.

Если сообщениями обмениваетесь через JSON формат то вроде как все просто класс content, чтоб там особо не заморачиваться объявить как MAP. MAP класть типо content.put(fieldX.getClass().getName(), fieldX). Header понятно просто array.

Код: java
1.
2.
3.
4.
5.
6.
 class Message{

           String[] header;
           Map<String, Object> content= new LinkedHashMap<>();

}



Ну вроде типо того в зависимости от спеков и фантазий потребителей
...
Рейтинг: 0 / 0
Помогите с организацией структуры классов
    #39737170
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ButthurtПримерно так.
На сервер для обработки приходят запросы, которые состоят из двух блоков:
1) Заголовок
2) Содержимое.

Таких сообщений может быть порядка 30-40 типов. Все они отличаются только набором данных.

Заголовок грубо говоря состоит из полей:
Заголовок.
-Тип сообщения Int обязательный, длинна 4
-Идентификатор отправителя Long, обязательный, длинна 15
-Идентификатор получателя Long, обязательный, длинна 15
-Дополнительно String, не обязательный, длинна 255
-Количество вложений, Int, обязательный, длинна 3
(Но набор полей в заголовке может менятся в зависимости от типа сообщения)

Дальше в сообщении идут записи (их количество перечисленно в заголовке)

Содержить могут произвольный набор полей Всех типов. Но вся заковырка в том что один из типов внутри записи, это вложенная запись с произвольным количествои полей всех типов.

Как то так.

Походу Вам прийдется подружится с библиотекой GSON
https://github.com/google/gson

Maven:

Код: xml
1.
2.
3.
4.
5.
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.5</version>
</dependency>



На самом деле тут все просто, просто с непривычки будете тормозить поначалу
...
Рейтинг: 0 / 0
Помогите с организацией структуры классов
    #39737191
Butthurt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне это будет приходить в XML формате. Но зато у меня есть над чем подумать =) Gson наверно сгодиться.

Спасибо большое.
...
Рейтинг: 0 / 0
Помогите с организацией структуры классов
    #39737566
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-бы в XML все уже есть. DOM называется

Не очень понятно, зачем вообще XML разбирается и что с ним будет делаться дальше. Если обрабатывается по каким-то бизнес правилам, то никакая "универсальная" структура не нужна. Нужно парсить/преобразовывать XML в ту структуру, которая потом будет требоваться для обработки.

Если же нужно прочесть только заголовок и, например, переслать XML куда-то дальше, то конвертировать туда-сюда-обратно тоже смысла мало.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Помогите с организацией структуры классов
    #39737612
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ButthurtНа сервер для обработки приходят запросывы определитесь, вам модель классов сделать и потом их посылать как сообщения?
Или уже есть сообщения в виде xml, json, почтовых голубей и вам нужны классы из них.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите с организацией структуры классов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]