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


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:


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:

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 send us an email at