Primeiro, vamos a declaração da interface que define a API de exportação e o enumerator com os formatos de saída suportados.
type
TExporterType = (etText, etCSV, etXML);
IExporterStrategy = interface
['{AA69E6F1-389F-4DC3-AC14-7FA7A749B183}']
function GetFileName: String;
procedure SetFileName(const Value: String);
property FileName: String read GetFileName write SetFileName;
procedure ExportToFile(const Value: String);
end;