[
https://issues.apache.org/jira/browse/LANG-964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13888654#comment-13888654
]
Oliver Heger commented on LANG-964:
-----------------------------------
While I like fluent interfaces in general, I am not sure whether this is the
correct approach for the fundamental functionality provided by [lang]. The
static utility methods may be a bit old-fashioned, but their usage is
straight-forward and efficient - a fluent API probably involves creating
intermediate objects for each call. And don't forget that it is a major effort
to rework the whole code base in a consistent way.
> 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)