В одном приложении у меня есть задача создать файлы, которые будут использоваться третьей стороной. На самом деле в файлах есть три разных типа контента:
- Список карточек сотрудников для отправки данных в стороннее приложение;
- Список карточек сотрудников для сбора биометрии;
- Интервал чисел.
Пока у меня есть только один класс с именем FileGenerator
(общий, я думаю, плохое имя), который получает данные и создает файл с определенным соглашением имен (код часов, тип файла, дата и час).
Существует хороший шаблон проектирования, позволяющий обеспечить соблюдение соглашения об именах файлов и разделить генерацию файлов по отдельным классам для каждого типа файлов?
Есть хороший способ повторно использовать код, который генерирует файл (не повторяя себя в определенных классах)?
Это часть существующего класса:
class FileGenerator {
private List<String> contentOfFile;
private String fileName;
//I - include employees
//C - change employees
//R - remove employees
//B - collect biometry
//N - interval of numbers
private String option;
private void getFileName(){ ... } //this assure the file name convention
public void generate(){ ... } //this generate the file with content
}
Что я думаю пока:
- Создайте один
abstract class
для хранения соглашения об именах. И записать содержимое в файл.
- Создайте
factory class
, который будет знать все типы файлов (фабрика - хороший образец для использования здесь?).
- Реализация конкретных классов для типов файлов, чтобы определить, какой контент будет записан.