Adding an “and()”-method when using Fluent Design

2011-02-24

The Fluent design (or fluent interface) makes code easier to read (and write). For those that are not familiar with this: it means the methods of a class return "this", so that you can chain methods calls. A well known example in Java is the PrintStream (due to it implementing the Appendable interface):

PrintWriter out = System.out;
out.append("Ooops..").append("i always used to append" 
   + "to the std out")
  .println(", shame on me");

It just means that the append method implementation return "this" as opposed to void. This morning I was using such a design again, but found the readability not as good as it should be:

job.addThis().addThat()

So i decided to add a little method to my fluent interface, named and():

public Job and(){
    return this;
}

Now the code reads much better:

job.addThis().and().addThat()
This article does not necessarily reflect the technical opinion of EDC4IT, but purely of the writer. If you want to discuss about this content, please use thecontact ussection of the site