commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedikt Ritter (JIRA)" <j...@apache.org>
Subject [jira] [Created] (LANG-964) Create fluent APIs where possible
Date Sat, 01 Feb 2014 12:36:08 GMT
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)

Mime
View raw message