* Adding support for maven assembly plugin to generate executable jar with all dependencies in built * Merge branch 'master' into issue-989 # Conflicts: # abstract-document/pom.xml # pom.xml * Adding maven assemly plugin for projects with name A * Update in format as per checkstyle, i.e. Spcae in place of tab with size of 2 * batch set - 2 having all project with B and C * issue-989 d-e-f * fixing eip pom and adding g-h-i-l-m-n Skipping naked object as it seems it doesn't have main method, will consider this at end * Adding for O and P projects Skipping Object-Mother as we don't have main method for same.
layout, title, folder, permalink, categories, tags
layout | title | folder | permalink | categories | tags | |
---|---|---|---|---|---|---|
pattern | Fluent Interface | fluentinterface | /patterns/fluentinterface/ | Functional |
|
Intent
A fluent interface provides an easy-readable, flowing interface, that often mimics a domain specific language. Using this pattern results in code that can be read nearly as human language.
Implementation
A fluent interface can be implemented using any of
- Method Chaining - calling a method returns some object on which further methods can be called.
- Static Factory Methods and Imports
- Named parameters - can be simulated in Java using static factory methods.
Class diagram
Applicability
Use the Fluent Interface pattern when
- you provide an API that would benefit from a DSL-like usage
- you have objects that are difficult to configure or use