Вопрос архитектуры класса - PullRequest
0 голосов
/ 26 апреля 2011

Просто после некоторых мнений по этому довольно простому вопросу.

Скажем, у меня есть класс DocumentParser, который извлекает много данных из электронной таблицы Excel. Захваченные данные моделируются другим объектом, скажем, «DataObject». Анализатор документов создает коллекцию этих объектов, готовых для передачи в большой набор наборов данных, для выполнения дальнейших задач.

Мой вопрос: вы бы внедрили заполнение набора данных в тот же класс, что и анализатор документов, или придерживаясь принципа единой ответственности, вы бы сделали этот класс новым? Если это отдельный класс, как бы вы представили коллекцию объектов данных этому классу, вы бы просто передали его в качестве параметра?

Спасибо.

1 Ответ

1 голос
/ 26 апреля 2011

ваш класс DocumentParser несет только одну ответственность: анализировать данные и возвращать из них структуру данных. Используйте другой класс для обработки этого набора данных - аналогично тому, как вы это делаете для всего XML-анализа (возвращает документ) и записи этого документа обратно в XML! Я бы предложил обернуть вашу коллекцию DataObject в другой класс, который позволяет выполнять итерацию по нему (снова посмотрите, как работает синтаксический анализ XML-документов), а затем передать эти инкапсулированные данные, а не просто простую коллекцию DataObject.

...