1. Общая структура DDD разделена на четыре уровня:
Инфраструктура (базовый уровень реализации)
Домен (доменный слой)
Приложение (прикладной уровень)
Интерфейсы (уровень представления, также называемый уровнем пользовательского интерфейса или уровнем интерфейса), роль каждого уровня описана ниже.
2. DDD: прикладной прикладной уровень
По сравнению с уровнем предметной области прикладной уровень является очень тонким, а прикладной уровень определяет задачи, которые должны выполняться программным обеспечением, которое должно быть максимально простым.
Он не содержит бизнес-правил или знаний о задачах, вспомогательных задачах, делегировании работы для следующего уровня объектов предметной области.
У него нет состояния, отражающего бизнес-ситуацию, но может быть состояние, отражающее ход выполнения определенной задачи пользователя или программы.
Различные прикладные функции (сервисы) предоставляются извне для уровня представления.
Внутренний вызов уровня предметной области (объектов предметной области или служб предметной области) для выполнения различных задач бизнес-логики.
Этот уровень также очень подходит для написания некоторой обработки задач, мониторинга журналов.
3. DDD: уровень домена домена
Уровень предметной области в основном отвечает за выражение бизнес-концепций, информации о бизнес-состоянии и бизнес-правил.
Уровень предметной области является основным уровнем всей системы, почти вся бизнес-логика будет реализована на этом уровне.
Уровень модели предметной области в основном включает следующее содержимое:
Сущности: Объекты с уникальным идентификатором
Объекты-значения: объекты, которые не нуждаются в уникальной идентификации.
Доменные службы: некоторые виды поведения не могут быть классифицированы как объекты-сущности или объекты-значения и, по сути, являются операциями, а не вещами.
Агрегаты/корни агрегатов (агрегаты, корни агрегатов): агрегат относится к набору связанных объектов со связными отношениями, каждый агрегат имеет корень и границу
Фабрики: создавайте сложные объекты, скрывайте детали создания
Репозиторий: Предоставляет методы для поиска и сохранения объектов.
4. DDD: базовый уровень реализации инфраструктуры
Нижний слой (но взаимодействует со всеми слоями)
Предоставлять общие технические возможности другим уровням (такие как классы инструментов, поддержка классов сторонних библиотек, общая базовая конфигурация, базовая реализация доступа к данным)
Базовый уровень реализации в основном включает следующее содержимое:
Передавать сообщения (например, уведомления) для прикладного уровня
Обеспечить механизм сохраняемости для доменного уровня (реализация самого низкого уровня).
Предоставляет конфигурацию компонентов для уровня пользовательского интерфейса.
Уровень инфраструктуры также может поддерживать режим взаимодействия между четырьмя уровнями через архитектурную структуру.
5. DDD: интерфейсы уровня пользовательского интерфейса (или уровень представления)
самый верхний
Запросите прикладной уровень для получения данных, которые необходимо отображать пользователю (например, получение данных о продукте на домашней странице).
Отправьте команду на прикладной уровень, чтобы попросить его выполнить команду пользователя (для реализации определенной бизнес-логики, например, чтобы пользователь перевел деньги)
Уровень пользовательского интерфейса должен содержать следующее:
Объект передачи данных: DTO также часто называют объектом значения, VO, который существенно отличается от VO доменного уровня.
DTO является носителем передачи данных, внутри не должно быть никакой бизнес-логики, а внутренние объекты домена изолированы от внешнего мира через DTO.
Ассемблер: Реализует взаимную конвертацию и обмен данными между DTO и объектами предметной области, поэтому Ассемблер почти всегда появляется вместе с DTO.
Фасад: Фасад предназначен для предоставления крупномасштабного интерфейса вызова для удаленных клиентов.
Его основная задача — делегировать пользовательский запрос одной или нескольким службам для обработки, которую мы часто называем контроллером.
конец статьи
Приглашаем обратить внимание на личный публичный аккаунт WeChat:Программирование кодераДобро пожаловать, чтобы следоватьПрограммирование кодераВ общедоступной учетной записи в основном представлены структуры данных и алгоритмы, системы знаний, связанные с Java, знания и принципы фреймворка, корзины семейства Spring, битва проектов микросервисов, практика DevOps, ежедневное интервью или письменный тестовый вопрос от интернет-компании, а также управление проектами PMP. знания Подождите. Еще больше захватывающего контента уже в пути~
Также поделитесь некоторыми эссе~