I have seen that some API's are designed in the way that you must use them as below code
Class.doThis("...").doThat("...")..... For example HTTPCommon (Fluent API) can be used as:
Request.Get("http://somehost/") .connectTimeout(1000) .socketTimeout(1000) .execute().returnContent().asString(); The quartz-schedule can be used as:
JobDetail job = newJob(HelloJob.class) .withIdentity("job1", "group1") .build(); The SimpleCatptch can be used as:
Captcha captcha = new Captcha.Builder(200, 50) .addText() .addBackground() .addNoise() .gimp() .addBorder() What is the name of this kind of API design? When it is good to design like this?