FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [View Raw Code]   [Original HTTPS Page]

java-design-patterns/fluentinterface/README.md at ProxyExample · Hanney-Ryu/java-design-patterns · GitHub

Latest commit

 

History

History
45 lines (34 loc) · 1.74 KB

File metadata and controls

45 lines (34 loc) · 1.74 KB
layout pattern
title Fluent Interface
folder fluentinterface
permalink /patterns/fluentinterface/
pumlid NOj93eCm302_KXv0VEzlN6F0bMCYB_3zvjpRQ3IpY97MnkNwEZD7l04SdtP8dlMfOAVBaYqRNHr4wy54Xo_Uk6uSSjWwC9FT0Zh61DYrPY_pyXs9WPF-NIllRLJN7m00
categories Other
tags
Java
Difficulty-Intermediate
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.

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

Real world examples

Credits


Back | FazBrowse Home | New Git URL