#java #list #collections
Вопрос:
У меня есть постановка проблемы, это своего рода бизнес-логика, и я хочу узнать ваше мнение по этому поводу, как бы вы подошли к такому сценарию, просто хотел знать наилучший возможный сценарий, вот и все.
Допустим, у вас есть список элементов, и в этом списке элементов есть класс, который в основном говорит, что это элемент оборудования или элемент обслуживания. У меня также есть другие материалы, но я в основном сосредоточен на этих двух.
Я веду один класс. называется материалом и имеет такие атрибуты, как isHardwareItem
, isserviceItem
, entryNum
, id
, Product
.
isHardwareItem
-> верно для элемента оборудования и ложно для всех остальных элементов. isserviceItem
-> верно для сервисного товара и ложно для всех остальных товаров. entryNum
-> генерирует уникальный номер для каждого товара, если товар добавлен в корзину > id
-> целое число, которое будет сгенерировано только в том случае, если клиент добавит сервисный товар вместе с аппаратным товаром, и оно будет одинаковым для каждого оборудования элемента обслуживания, чтобы я мог связать. например
Hardwareitem — идентификатор = 0 , номер записи=1
Элемент обслуживания — идентификатор = 0, номер записи = 2
Product
-> другой класс, который содержит название продукта, описание и т. Д.
Проблема
если клиент добавляет элемент обслуживания вместе с элементом оборудования, мне нужно прикрепить entryNum
элемент оборудования к элементу обслуживания вместе с атрибутами ServiceItem.
Мой Подход
сначала проверяет идентификатор, если сгенерированный идентификатор означает, что клиент добавил как оборудование, так и сервисный товар. получите entryNum
аппаратное обеспечение и сохраните его на карте.
ключом будет идентификатор, а значением будет номер входа элемента оборудования.
затем выполняется итерация добавленных записей, и будет создан запрос на отправку материалов во внешний api. во время этого, если я столкнусь с сервисным материалом с тем же идентификатором, я прикреплю его к номеру ввода аппаратного материала, сделаю запрос и отправлю его в api.
У меня есть вышеупомянутое решение, но оно дорогостоящее, потому что буквально повторение происходит дважды. у кого-нибудь из вас есть лучшее решение, чем мое ? Пожалуйста, отбросьте свои мысли.
Хорошего вам дня . 🙂
Комментарии:
1. Не решая проблему, но для удобства обслуживания вы могли бы сделать поля
isHardwareItem
isServiceItem
и т. Д. Методом и просто сохранитьint type
поле. Скажем0
, соответствует элементу аппаратного обеспечения и1
соответствует элементу обслуживания. ТогдаisHardwareItem()
бы просто вернулсяtype==0
иisServiceItem()
просто вернулсяtype==1
. При добавлении дополнительных типов вам не нужно загромождать свой класс всеми этими полями, и, самое главное, вам не нужно устанавливать каждое из этих полей.