@Otakukz17

Как сделать персональное голосовое приветствие на Java?

Есть список самых популярных имён клиентов. Для каждого клиента есть уникальный звук приветствия, который должен проговорить IVR.

У меня стоит задача, написать логику на Java, чтобы по имени клиента, выдавать название звука.
Имен около 200, не считая вариации одного и того же имени.
Первое, что пришло в голову, использовать условие:
if (name.equals("SERGEY") || name.equals("Сергей") || name.equals("Сергiй") ) 
{ 
SimplePrompt block=new SimplePrompt("SERGEY_name_xx.wav".replace("xx",language)); 
}


Так как, этот вариант требует написания большого кол-ва строк кода, я думаю над тем как реализовать эту задачу.
Прошу вашей помощи.
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 3
xez
@xez Куратор тега Java
TL Junior Roo
Примерно так:
var userPrompts = Map.of("SERGEY", new SimplePrompt("SERGEY.wav"),
                         "ANDREW", new SimplePrompt("ANDREW.wav"));

var block = userPrompts.get("SERGEY");


Сюда бы еще наполнение мапы из бд прикрутить...
Ответ написан
Комментировать
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день!
Так как, этот вариант требует написания большого кол-ва строк кода, я думаю над тем как реализовать эту задачу.

Я бы на вашем месте подумал бы над использованием какого-нибудь подходящего паттерна.
использовать if ... else или switch case это конечно прикольно, но писать такую махину на несколько тысяч строк как-то не очень.
Можно подумать над применением паттернов - Command, Strategy илиChain of Responsibility
Можете начать с этих ресурсов:
https://stackoverflow.com/questions/28049094/repla...
https://refactoring.guru/
Ответ написан
Комментировать
@pogoreli
Ienumerator

Case switch
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы