Как обрабатывать дополнительные параметры для разных реализаций интерфейса в Java?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как обрабатывать дополнительные параметры для разных реализаций интерфейса в Java?

Сообщение Anonymous »

Я работаю над проектом Spring Boot, в котором у меня есть интерфейс Notifier с методом отправки (String message). Различные реализации Notifier, такие как FCMNotifier и SNSNotifier, требуют дополнительных параметров для отправки уведомлений (например, токенов, тем и т. д.).
Вот пример моего интерфейса и двух реализаций:
`public Interface Notifier {
void send(String message);

@Component
public сорт FCMNotifier реализует Notifier {

Код: Выделить всё

@Override
public void send(String message) {
// Use token to send message via FCM
// need token

}
}
@Component
публичный класс SNSNotifier реализует Notifier {

Код: Выделить всё

@Override
public void send(String message) {

// Use topicArn to send message via SNS
// need topicArn
}
}
`
Как видите, каждая реализация требует дополнительных параметров (токен для FCMNotifier и themeArn для SNSNotifier). Я хочу сделать этот дизайн более гибким и избежать жесткой привязки параметров к конкретным реализациям.
Мой вопрос:
Как лучше всего обрабатывать такие дополнительные параметры для разных реализаций в масштабируемый и удобный в обслуживании способ?
Должен ли я использовать что-то вроде объекта Context для динамической передачи параметров? Или есть более эффективные шаблоны проектирования для решения этой проблемы?
Должен ли я вместо этого добавить построитель для обработки общих запросов?
Я попробовал использовать и шаблон Builder, и шаблон Decorator, чтобы повысить гибкость. и масштабируемость. Я ожидал, что шаблон Builder поможет динамически создавать уведомления с различными параметрами (например, токенами или темами), а шаблон Decorator позволит мне накладывать дополнительные варианты поведения (например, механизмы регистрации или повтора) вокруг процесса уведомления. Однако я не уверен, правильный ли это подход или есть ли более эффективные шаблоны или методы, которые мне следует рассмотреть для этого варианта использования.

Подробнее здесь: https://stackoverflow.com/questions/793 ... n-interfac
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»