Sobes.tech
Назад к вопросам
Junior — Middle
64

Расскажите о своем опыте реализации паттерна Pipeline в проектах.

Компании, где спрашивали
Ви6 Сервисес

Ответ от нейросети

sobes.tech AI

Паттерн Pipeline позволяет организовать обработку данных в виде последовательности шагов, где выход одного шага становится входом для следующего. В Java я реализовывал Pipeline, используя цепочку вызовов методов или функциональные интерфейсы.

Например, для обработки коллекции данных можно создать цепочку функций:

import java.util.function.Function;
import java.util.List;
import java.util.stream.Collectors;

public class PipelineExample {
    public static void main(String[] args) {
        List<String> data = List.of("  one ", "two", " three ");

        Function<String, String> trim = String::trim;
        Function<String, String> toUpper = String::toUpperCase;

        List<String> result = data.stream()
            .map(trim.andThen(toUpper))
            .collect(Collectors.toList());

        System.out.println(result); // [ONE, TWO, THREE]
    }
}

Такой подход упрощает добавление новых шагов и улучшает читаемость кода. В более сложных случаях можно создавать собственные интерфейсы Pipeline с методами для добавления этапов и выполнения всей цепочки.