Вы, наверное, слышали и встречали такую штуку, а некоторые даже писали.
instance.Method1().Method2()
По своему определению текучие интерфейсы представляют из себя набор методов, где каждый метод добавляет или удаляет какое-то свойство, то есть меняет инстанс.
В принципе я с этим не совсем согласен. Я считаю, что такие методы должны ставить флаги (или просто записывать входные параметры), то есть не должны выполнять работу прямо в месте вызова.
Как? Ну это довольно просто:
void Method() {}
Меняем на
T Method() { return this; }
Где T может быть текущим типом, может быть интерфейсом (как в оригинале было и задумано, но структуры все портят).
Зачем? Лаконичность кода и легкость восприятия.
Пишите в комментах где вы используете fluent-interface подход.
1 min read
0 Comments