Я пытаюсь разработать банковское приложение, которое поддерживает 3 функции:
- Добавление кредита
- Создание дебета
- Проверка баланса
Я выбрал
- 1
ConcurrentHashMap
в качестве моей структуры данных, чтобы представить сущность, которая содержит баланс клиента - 1
ConcurrentHashMap
, который имеет все кредиты - 1
ConcurrentHashMap
, у которого есть все дебеты.
Одним из требований перед добавлением кредита является проверка того, не существует ли еще идентификатор транзакции, с которой производится кредит.Существуют.
В моем ConcurrentHashMap
, который имеет все кредиты, у меня есть ключ в качестве customerId, creditType и валюты.Но для вышеуказанного требования мне нужно будет просмотреть карту всех типов кредитов, чтобы проверить, не использовался ли этот идентификатор транзакции клиентом.Есть ли лучший способ справиться с этим?Могу ли я иметь ключ для hashMap, который содержит, скажем, 3 атрибута, один из которых является необязательным?Если это не указано, тогда какое-либо значение для этого атрибута должно подойти?
Или ConcurrentHashMap
неправильная структура данных для использования в этом случае?
Редактировать 1
с использованием одного ConcurrentHashMap
для отслеживания всего, кроме того, что вызывает три разных поиска (3 разных ключа);используя идентификатор клиента, тип валюты в качестве ключей (кортеж)
Это нормально с точки зрения производительности?как еще вы решите банковскую проблему, подобную этой?