On Wed, Jan 15, 2014 at 8:06 AM, Benedikt Ritter <brit...@apache.org> wrote:

> Hi Gary,
>
> 2014/1/15 Gary Gregory <garydgreg...@gmail.com>
>
> > On Wed, Jan 15, 2014 at 7:00 AM, Benedikt Ritter <brit...@apache.org>
> > wrote:
> >
> > > Hi all,
> > >
> > > we currently have StringUtils.getLevenshteinDistance. LANG-944 [1] is
> > about
> > > introducing a new string algorithm called Jaro Winkler Distance [2].
> > Since
> > > StringUtils already does a lot of things, I'm wondering if it may make
> > > sense to introduce a new class that serves as a host for more string
> > > algorithms to come. It would look something like:
> > >
> > > StringAlgorithms.levenshteinDistance(str1, str2);
> > > StringAlgorithms.jaroWinklerDistance(str1, str2);
> > >
> > > We would deprecate StringUtils.getLevenshteinDistance and delegate to
> the
> > > new class. It could be removed from StringUtils in the next major
> > release.
> > >
> >
> > > Thoughts?
> > >
> >
> > Yuck!
> >
> > I'd rather have once class per algo which reminds me that [codec] might
> be
> > a better place for things like this that 'encode' strings into something
> > else.
> >
>
> Both methods return a double value modeling some kind of score. They do not
> encode. Maybe StringAlgorithms is the wrong name? How About StringScore or
> something like that?
>

Still wrong IMO and not OO. A single class will become another
dumping-ground/kitchen-sink like StringUtils. I would not want to see one
algo be a one method one liner impl and another algo be a complex 20 method
job. I guess we could organize algos using nested classes like
StringFoo.BarAlgo but that's not ideal. All algo classes in a new pkg is
another way to go.

Gary


>
>
> >
> > Gary
> >
> >
> > > Benedikt
> > >
> > > [1] https://issues.apache.org/jira/i#browse/LANG-944
> > > [2] http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance
> > >
> > > --
> > > http://people.apache.org/~britter/
> > > http://www.systemoutprintln.de/
> > > http://twitter.com/BenediktRitter
> > > http://github.com/britter
> > >
> >
> >
> >
> > --
> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> > Java Persistence with Hibernate, Second Edition<
> > http://www.manning.com/bauer3/>
> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> > Spring Batch in Action <http://www.manning.com/templier/>
> > Blog: http://garygregory.wordpress.com
> > Home: http://garygregory.com/
> > Tweet! http://twitter.com/GaryGregory
> >
>
>
>
> --
> http://people.apache.org/~britter/
> http://www.systemoutprintln.de/
> http://twitter.com/BenediktRitter
> http://github.com/britter
>



-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
Java Persistence with Hibernate, Second Edition<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to