Method Chaining

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;

is now:  

a << b;

a << c;

In JavaScript, the built-in methods of Array are used: 

somethings

  .filter(x => x.count > 10)

  .sort((a, b) => a.count – b.count)

  .map(x => x.name)

Webopedia Staff
Webopedia Staff
Since 1995, more than 100 tech experts and researchers have kept Webopedia’s definitions, articles, and study guides up to date. For more information on current editorial staff, please visit our About page.

Related Articles

ITIL Certification

ITIL certifications help information technology (IT) professionals and teams align their strategy with an organization's overall strategy. Knowledge gained from ITIL certifications can also...

Agile Project Management

Agile project management enables business teams to approach their projects and tasks with a flexible mindset, allowing for both expected and unexpected changes throughout...

Private 5G Network

A private 5G network is a private local area network (LAN) that utilizes 5G cellular technologies and edge device connections to reduce latency, improve...

Rich Communication Services (RCS)

Rich communication services (RCS) is a mobile messaging approach in which session initiation protocol (SIP) and hypertext transfer protocol (HTTP) support the sending of...

Agile Project Management

Agile project management enables business teams to approach their projects and tasks with...

Private 5G Network

A private 5G network is a private local area network (LAN) that utilizes...

Rich Communication Services (RCS)

Rich communication services (RCS) is a mobile messaging approach in which session initiation...