View Source on Github


Difficulty-Intermediate Functional Java Behavioral


Allows processing of data in a series of stages by giving in an initial input and passing the processed output to be used by the next stages.


Use the Pipeline pattern when you want to

  • execute individual stages that yields a final value
  • add readability to complex sequence of operations by providing a fluent builder as an interface
  • improve testability of code since stages will most likely be doing a single thing, complying to the Single Responsibility Principle (SRP)

Typical Use Case

  • implement stages and execute them in an ordered manner

Real world examples