2014-02-19 3 views
0

У меня есть универсальный пользовательский объект converter, который должен быть в состоянии,Как создать объект с помощью комбинации методов?

  • чтения из XML и запись XML
  • чтения из XML и записи в CSV
  • считанной из CSV и запись XML
  • чтения из CSV и записать в CSV

Итак, я думал, что я мог бы сделать что-л, как:

Converter 
{ 
    IReader reader; 
    IWriter writer; 
} 

IReader 
{ 
read(); 
} 

.. (такой же для писателя) затем экземпляр конвертер из одного из каждого, реализации интерфейса:

new Converter(XMLReader, CSVWriter); 

(где XMLReader implements IReader & CSVWriter implements IWriter)

Но, опять же, было бы круче чтобы иметь возможность совмещать классы, связанные с XML.

Может быть, простой вопрос с простым ответом, но мне было интересно, можем ли мы придумать более элегантное решение.

Заранее спасибо

+0

Если вы определили классы для источников XML и источников CSV, почему бы не использовать интерфейс 'Converter ', который вы бы использовали для всех случаев? – fge

+0

, что d сделать 4 класса tho, нет? не могли бы вы объяснить, может быть, немного больше? –

+1

Ну, три на самом деле, так как вы можете реализовать 'IdentityConverter ' как 'Конвертер ';) Вы действительно не очень много рассказываете о своих интерфейсах для чтения/записи, поэтому трудно найти «идеальное» решение – fge

ответ

2

Ваш дизайн в порядке. Если вы хотите группировать свои классы вместе, используйте пакеты. Например, создайте пакеты: com.mycompany.xml и com.mycompany.csv. Затем поместите CsvReader и CsvWriter в com.mycompany.csv и XmlReader и XmlWriter в com.mycompany.xml.

Смежные вопросы