Ищете шаблон дизайна или библиотеку - PullRequest
0 голосов
/ 21 февраля 2019

Существует ли какой-то конкретный шаблон проектирования, который я мог бы использовать для создания строкового выражения с некоторыми вложенными условиями?

Учитывая:

Builder.red().and().blue().or(white().and().black()).toString()

Результат должен быть:

red and blue or ( white and black )

Изначально я начал использовать шаблон компоновщика (возможно, он не подходит), но я застрял, когда мне нужно было создать вложенное условие.В идеале использование должно быть таким же, как в приведенном выше фрагменте (метод цепочки).

Мне нужно это для проекта Java (версия 8), и сгенерированное выражение будет использоваться в качестве языка выражения Spring (не удалось найти Springслужебный класс, который это делает).

1 Ответ

0 голосов
/ 21 февраля 2019

Недавно я решил похожую проблему, отслеживая вложенные выражения в компоновщике.Хотя я бы предпочел цепочку, как вы предложили, мне пришлось поместить вложенное условие между .open () и .close ().

Ваш код будет выглядеть как

Builder.red().and().blue().or().open()
           .white().and().black()
.close().toString()

ОткрытоеФункция () добавляет еще один компоновщик в стек (внутри компоновщика), а функция close () вызывает этот компоновщик и добавляет его в промежуточный шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...