Domain Driven Design - модуль, ориентированный на данные, внутри большой системы DDD - PullRequest
1 голос
/ 16 декабря 2009

Мы разрабатываем систему на основе DDD. Для определенного модуля (издателя) в этой системе мы получим данные от других объектов и выполним преобразования для них, а затем выпишем файлы данных.

В разрабатываемом проекте DDD имеется много пользовательских классов сбора данных ... все эти объекты просто содержат строки данных, но имеют разные имена классов и свойств. Есть ли хорошая стратегия или шаблон для решения этой ситуации? То есть способ применить одну и ту же логику ко всем этим объектам.

Дополнительные сведения: например, у нас может быть класс DataType123, который содержит коллекцию объектов Data123Row. Затем класс типа Data456, содержащий коллекцию объектов Data456Row. Допустим, есть 15 различных объектов, подобных этим. Из-за идей DDD у них есть доменные имена, но на самом деле они являются более или менее табличными данными, то есть строками и столбцами. Мы пытаемся создать универсальный сервис, который может обращаться с ними одинаково, даже если это технически разные классы.

Ответы [ 3 ]

1 голос
/ 16 декабря 2009

Можно предположить, что Сервис (DDD) и Адаптер (GoF) паттерны были бы хорошей отправной точкой.

Поскольку преобразование данных не является деятельностью, ориентированной на домен, вызывайте их через Службы (которые в свою очередь используют Адаптеры для преобразования данных)

1 голос
/ 16 декабря 2009

Мне кажется, что вам нужен базовый класс DataType и базовый класс DataRow, с которыми работают ваши алгоритмы преобразования.

Затем используйте шаблон Factory для построения ваших объектов.

Если вы используете C #, вы можете использовать рефлексию для общего доступа ко всем свойствам.

Или, если вашим алгоритмам преобразования требуется доступ к определенным именам свойств, ваши фабрики могут обработать конструкцию DataType123, DataRow123 и TransformationAlgorithm123.

0 голосов
/ 16 декабря 2009

Ваш вопрос немного неясен. DDD - это все о шаблоне репозитория для сохранения ваших ценностных объектов. Вы ищете другие модели, чтобы иметь дело с чем-то конкретным? Непонятно, чего вы здесь пытаетесь достичь.

...