Мне нужно создать сложный объект конфигурации на основе значений параметров, которые я получаю.Ищете шаблон для создания и конфигурации классов на основе входных параметров
Мои входы - это две простые переменные и объект конфигурации. Сочетание 2-х переменных и внутренностей объекта конфигурационного будет определять конфигурацию выходного класса (который всегда тот же тип)
Делать это с простым, если-иначе он бы выглядеть следующим образом:
if (a == 1 && b == 1) {
//do some testing on the input object, configure and return the output object
else if (a == 2 && b == 1) {
//do some different testing on the input, configure and return the output.
}
и дальше.
Существует около 5 различных значений, которые могут содержать & b и в зависимости от значений & b, мне нужно будет проверить разные вещи внутри входного объекта.
Я не уверен в лучшем способе решить эту проблему. Моя первая мысль должна иметь какой-то Command Pattern
с методом, как:
public interface Command {
public OutputConfig execute(InputConfig config);
}
и хранить свои потенциальные & комбинации A B в Map<Pair<A,B>, Command>
для поиска.
Я чувствую, что ищу какой-то шаблон Factory/Command/Builder, но не уверен в лучшем способе его реализации.
Заранее спасибо.
Что такое A, B в паре? – arjacsoh
@arjacsoh Значения enum – Will
Если есть только пять различных случаев, которые вам нужно покрыть (если я это понял правильно), я бы, вероятно, просто жестко запрограммировал тесты. Вы можете сделать решение более элегантным и регулярным, вводя абстракцию как карту, но ценой повышенной сложности. Я бы не заплатил эту стоимость до тех пор, пока количество случаев или необходимость добавления дел во время выполнения не сделало жестко закодированный случай неприемлемым. –