On Sat, Mar 23, 2013 at 8:59 AM, Thomas Neidhart
<thomas.neidh...@gmail.com>wrote:

> On 03/23/2013 12:41 PM, Benedikt Ritter wrote:
> > Hi,
> >
> > while looking through the code, I was asking myself why we expose
> > implementation classes. Wouldn't it be better to extract interfaces from
> > CSVParser, CSVPrinter and CSVRecord? At least for the CSVRecord it would
> > make sense because users cannot create CSVRecord instances. Why binding
> > them to a concrete implementation?
> > Since CSVParser und CSVPrinter can only be created using the default
> ctor,
> > users would have to write something like (and though still defining a
> > dependency to the concrete implemenation):
> >
> > CSVPrinter printer = new DefaultCSVPrinter(in, format);
> >
> > It would even make sense to extract an Interface for Lexer and CSVLexer
> > although it is only used internally. Having an abstract class (Lexer)
> that
> > defines a abstract method, that is not used in one of the other methods,
> > but just defines an interface feels strange. And if we decide to expose
> the
> > lexer, so that users can plugin their own lexer implementations (for what
> > ever reason...) we would be set up for this.
>
> I think it is important to make things not more complicated than
> necessary. If there will be only one implementation of this interface
> you do not gain anything by splitting it up.
>

I agree with Thomas. Let's not create a JDBC for CSV unless one is needed.

For 1.0, I want to something that works and is simple to use.

Gary


> In math we merged many of this interface/implementation constructs back
> into a single class.
>
> If there is a need to alter/tweak the behavior of a class you can still
> subclass it, I guess.
>
> Thomas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0
Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to