Должен ли я иметь отдельные объекты для ввода и вывода, у этого шаблона есть имя? - PullRequest
0 голосов
/ 14 апреля 2011

Я ищу название этого шаблона и понимаю причины этого дизайна.

У меня есть:

  1. Входные данные (из БД) : помещается в объект, содержащий данные соответствующий строке таблицы и также объекты этого иностранного ключи. Данные могут поступать из БД или генерируется из кода для блока тестирование.

  2. Калькулятор: , который анализирует, обрабатывает и изменяет эти данные. я хотите, чтобы входные данные оставались внешними к этому калькулятору, чтобы иметь возможность модульное тестирование с генерируемыми данными из кода или из и XML файл вместо БД.

  3. Данные результатов: Затем мне нужно обновить моя база, но и эти результаты может быть использован для проверки против ожидаемые результаты в случае единицы тестирование.

Является ли это разделением образца озабоченности ? Есть ли здесь другие известные паттерны?

Если мой объект результата, содержащий данные результата, будет находиться в том же объекте, что и мои входные данные, и в начале он будет иметь нулевое значение, а затем обновляться после обработки, или если объект результатов будет полностью независим от объекта ввода, и почему, пожалуйста.

Ответы [ 3 ]

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

На высоком уровне я бы назвал это «ETL», «Извлечение, преобразование и загрузка».Этот термин чаще используется в контексте BI, но концептуально это то же самое.

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

Я бы предложил, чтобы ваш выходной объект был полностью независим от вашего входного объекта.В противном случае ваш входной объект должен «знать» о выходном объекте.Это кажется неразумным, потому что каждый раз, когда вы изменяете выходной объект, вы меняете входной объект по расширению.Или, возможно, вы хотите несколько разных выходных объектов.Затем входной объект должен знать обо всех выходных объектах, или у вас есть нетипизированная ссылка (например, object в .NET), которую вам нужно привести.

Входной объект - это именно то, что:он представляет данные, полученные от вашего хранилища данных или чего-то ещеЭти входные данные передаются через какое-то преобразование для создания какого-либо выходного объекта, который может иметь очень мало отношения к входному объекту.

Короче говоря, у входного объекта нет веских оснований иметь какие-либо знания овыходной объект.Фактически, входной объект даже не должен беспокоиться о том, что выходной объект существует.Придание объекту ввода этих знаний приведет к ненужной связи, что усложнит изменение вашего кода в будущем.

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

В вашем списке есть много разных вещей, которые кажутся специализированными, чтобы быть частью одного паттерна. Тем не менее, краеугольным камнем вашего описания является шаблон Repository.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...