Вот пример моего интерфейса и двух реализаций:
Код: Выделить всё
public interface Notifier {
void send(String message);
}
@Component
public class FCMNotifier implements Notifier {
@Override
public void send(String message) {
// Use token to send message via FCM
// need token
}
}
@Component
public class SNSNotifier implements Notifier {
@Override
public void send(String message) {
// Use topicArn to send message via SNS
// need topicArn
}
}
Мой вопрос:
Как лучше всего обрабатывать такие дополнительные параметры для разных реализаций в масштабируемый и удобный в обслуживании способ?
Должен ли я использовать что-то вроде объекта Context для динамической передачи параметров? Или есть более эффективные шаблоны проектирования для решения этой проблемы?
Должен ли я вместо этого добавить построитель для обработки общих запросов?
Я попробовал использовать и шаблон Builder, и шаблон Decorator, чтобы повысить гибкость. и масштабируемость. Я ожидал, что шаблон Builder поможет динамически создавать уведомления с различными параметрами (например, токенами или темами), а шаблон Decorator позволит мне накладывать дополнительные варианты поведения (например, механизмы регистрации или повтора) вокруг процесса уведомления. Однако я не уверен, правильный ли это подход или есть ли более эффективные шаблоны или методы, которые мне следует рассмотреть для этого варианта использования.
Подробнее здесь: https://stackoverflow.com/questions/793 ... n-interfac