В моем приложении может быть создано несколько различных отчетов (CSV, HTML и т.д.).
Вместо создания традиционного шаблона метода factory, я планировал добавить метод к телу констант перечисления, который создавал бы и возвращал соответствующий объект отчета.
public enum ReportType {
CSV {
@Override
public Report create() {
return new CSVReport();
}
},
HTML {
@Override
public Report create() {
return new HTMLReport();
}
};
public abstract Report create();
}
С указанной константой перечисления ReportType я мог бы легко создать новый отчет, выполнив инструкцию вроде следующего:
ReportType.CSV.create()
Я хотел получить мнение других относительно использования этого подхода. Что ты думаешь об этом? Предпочитаете ли вы какой-либо другой подход, и если да, то почему?
Спасибо