Gary Gregory wrote:

> 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.

+1

- Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to