Вопрос архитектуры класса
Просто после некоторых мнений по этому довольно простому вопросу.
Скажем, у меня есть класс DocumentParser, который извлекает много данных из электронной таблицы Excel. Захваченные данные моделируются другим объектом, скажем, "DataObject". Анализатор документов создает коллекцию этих объектов, готовых для передачи в большой набор наборов данных, для выполнения дальнейших задач.
Мой вопрос: вы бы внедрили заполнение набора данных в тот же класс, что и анализатор документов, или придерживаясь принципа единой ответственности, сделаете ли вы этот новый класс? Если бы это был отдельный класс, как бы вы представили коллекцию объектов данных этому классу, вы бы просто передавали в качестве параметра?
Благодарю.
1 ответ
Ваш класс DocumentParser несет только одну ответственность: анализировать данные и возвращать из них структуру данных. Используйте другой класс для обработки этого набора данных - аналогично тому, как вы это делаете для всего XML-анализа (возвращает документ) и записи этого документа обратно в XML! Я бы предложил обернуть вашу коллекцию DataObject в другой класс, который позволяет выполнять итерацию по нему (снова посмотрите, как работает синтаксический анализ XML-документа), а затем передать эти инкапсулированные данные, а не просто простую коллекцию DataObject.