Benedikt Ritter created LANG-964:
------------------------------------

             Summary: Create fluent APIs where possible
                 Key: LANG-964
                 URL: https://issues.apache.org/jira/browse/LANG-964
             Project: Commons Lang
          Issue Type: Task
          Components: General
            Reporter: Benedikt Ritter
             Fix For: 4.0


A lot of commons-lang is design in an old fashioned way using static util 
methods. The problem of this design is, that it encodes a language into method 
names leading to lots of variations of the same method in one class. For 
example StringUtils has over 180 methods, 9 of which a related to splitting.

Instead of overloading methods and creating method name variations, we should 
try to implement fluent APIs. Examples:

Instead of:
{code:java}
StringEscapeUtils.escapeHtml3(String)
StringEscapeUtils.escapeHtml4(String)
StringEscapeUtils.escapeXml(String)
{code}

the API could look like:

{code:java}
StringEscaping.escape(String).with(Escaping.HTML_3)
StringEscaping.escape(String).with(Escaping.HTML_4)
StringEscaping.escape(String).with(Escaping.XML)
{code}

So no additional methods are necessary when adding new escaping. There are more 
examples in commons-lang where the fluent design can be applied. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to