Design an API with cascade function calls ( Class.doThis("...").doThat("...")..... )
<p>I have seen that some API's are designed in the way that you must use them as below code</p>

<pre><code>Class.doThis("...").doThat("...").....
</code></pre>

<p>For example HTTPCommon (Fluent API) can be used as:</p>

<pre><code>Request.Get("http://somehost/")
        .connectTimeout(1000)
        .socketTimeout(1000)
        .execute().returnContent().asString();
</code></pre>

<p>The quartz-schedule can be used as:</p>

<pre><code>JobDetail job = newJob(HelloJob.class)
               .withIdentity("job1", "group1")
               .build();
</code></pre>

<p>The SimpleCatptch can be used as:</p>

<pre><code>Captcha captcha = new Captcha.Builder(200, 50)
                  .addText()
                  .addBackground()
                  .addNoise()
                  .gimp()
                  .addBorder()
</code></pre>

<p>What is the name of this kind of API design? When it is good to design like this? </p>