sostanzialmente:
codice:
public class JsonDb {

    public void create(String inputFile, List<Nota> list) throws IOException {

    }
}

public class XmlDb {
    public void create(String inputFile, List<Nota> list) throws ParserConfigurationException, TransformerException {

    }
}

public class CsvDb {

    public void create(String inputFile, String[] header, List<Nota> list) throws IOException {

    }
}

public class ExcelDb {

    public void create(String inputFile, String[] header, List<Nota> list) throws IOException, WriteException {

    }
}

quindi:
- tutti accettano il path dove salvare il file
- tutti accettano List<Nota> (io prevedo di usare solo questa lista in questo programma)
- alcuni accettano anche uno String[]
- alcuni hanno delle eccezioni "in più" rispetto ad altri

in comune, quindi, hanno praticamente solo che ricevono un path di salvataggio file, e una List<Nota>.
poi ogni export esporta in un determinato formato, usando diverse librerie.