Method chaining is the practice of calling different methods in a single line in object-oriented programming languages. Each method returns an object, meaning the calls can be chained together in a single line without requiring variables to store the results. Method chaining is used to eliminate an extra variable for each intermediate step, making it a simpler process and avoiding repetition. The developer no longer has to name the variable and keep it in mind.
Method chaining can be used as a convenient way to build value types, especially for a builder pattern. It can be used to implement fluent interfaces, which is an object-oriented API that extensively relies on method chaining. Fluent interfaces provide developers with a mechanism for calling methods on classes that are easily readable and can be used to build small domain-specific languages. It also allows for operation on the object through methods without breaking the flow over and over by repeating the object.
A drawback of using method chaining is that it takes away the ability to return any other value from methods since it must return the object the method was invoked on.
Examples of method chaining
A popular and simple example is iostream (Standard Input/Output Stream) in the high-level programming language C++. << returns the left objects, which allows for chaining.
What started as:
a << b << c;
a << b;
a << c;
.filter(x => x.count > 10)
.sort((a, b) => a.count – b.count)
.map(x => x.name)