I'm going to implement a data export system (downloading files from a website). The system shall provide following things:
- different data formats: xls, csv, etc.
- different report types (basic report, advanced report, report detailed on xxx,yyy, etc.)
- different time concerning the data
- different user accounts
Which design pattern shall be used for such system? I was thinking about Abstract Factory, Factory Method and Builder patterns, but I'm not sure which one suits better here. I'd appreciate short explanation or simple model structure.