Ali*_*ahi 2 java oop api design-patterns
我已经看到一些API的设计方式必须使用它们如下面的代码
Class.doThis("...").doThat("...").....
Run Code Online (Sandbox Code Playgroud)
例如,HTTPCommon(Fluent API)可用作:
Request.Get("http://somehost/")
.connectTimeout(1000)
.socketTimeout(1000)
.execute().returnContent().asString();
Run Code Online (Sandbox Code Playgroud)
石英计划可用作:
JobDetail job = newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build();
Run Code Online (Sandbox Code Playgroud)
SimpleCatptch可用作:
Captcha captcha = new Captcha.Builder(200, 50)
.addText()
.addBackground()
.addNoise()
.gimp()
.addBorder()
Run Code Online (Sandbox Code Playgroud)
这种API设计的名称是什么?这样的设计好吗?
正如HTTPCommon所说,它简称为"流畅".构建器通常具有流畅的布局,但构建器模式是正交的:Fluent API是关于可读的链式方法调用,而构建器是关于为对象指定完整配置,然后一次完整地构建它.
只要它使代码可读,这种风格就适用; 当IDE自动完成可以帮助程序员时,它特别有用.两个最常见的用例是配置(构建器或Spring样式的配置器)和数据管道(例如Java 8流和反应式编程).