likes
comments
collection
share

DDD领域模型:在智慧城市交通系统区分核心/通用/支撑域案例分析

作者站长头像
站长
· 阅读数 20

智慧城市交通系统结合领域驱动设计(DDD)的改造,是一种以业务领域为核心的系统设计方法,它通过创建高度内聚、低耦合的软件模型来应对复杂的业务逻辑。以下是智慧城市交通系统结合DDD改造成果,提供给新手参考,而非标准,主要解释了核心域、通用域、支撑域的划分方式:

肖哥弹架构 跟大家“弹弹” DDD领域模型设计,需要代码关注

欢迎 点赞,点赞,点赞。

关注公号Solomon肖哥弹架构获取更多精彩内容

历史文章

领域驱动设计概念:

  1. 领域(Domain) :指的是软件系统所服务的业务领域。
  2. 子领域(Subdomain) :领域内的特定部分,具有自己的业务逻辑和模型。
  3. 界限上下文(Bounded Context) :定义了模型和语言的边界,是领域的一部分,拥有自己的模型和术语。
  4. 实体(Entity) :具有唯一标识和生命周期的对象。
  5. 值对象(Value Object) :描述领域概念,但没有唯一标识的��象。
  6. 聚合(Aggregate) :一组相关对象的集合,它们一起作为数据修改的单元。
  7. 领域服务(Domain Service) :执行领域逻辑但不自然属于任何实体或值对象的操作。
  8. 应用服务(Application Service) :协调领域对象来完成应用程序的任务。
  9. 领域事件(Domain Event) :领域中发生的有意义的事件,通常用于触发其他领域行为。
  10. 仓储(Repository) :提供对聚合根的查询和持久化机制。
  11. 工厂(Factory) :用于创建复杂的聚合或对象。

核心域图

DDD领域模型:在智慧城市交通系统区分核心/通用/支撑域案例分析

通用域图

DDD领域模型:在智慧城市交通系统区分核心/通用/支撑域案例分析

支撑域图

DDD领域模型:在智慧城市交通系统区分核心/通用/支撑域案例分析

DDD项目工程结构

src/
|-- application/
|   |-- features/               // 业务特性相关的应用层代码
|   |-- services/              // 应用服务层
|-- domain/
|   |-- core/                   // 核心域
|   |   |-- accounting/         // 财务管理
|   |   |-- traffic_control/    // 交通控制
|   |   |-- public_transport/   // 公共交通
|   |   |-- road_maintenance/   // 道路维护
|   |   |-- safety_regulation/  // 安全规章
|   |   |-- toll_management/    // 收费管理
|   |   |-- vehicle_registration// 车辆注册
|   |   |-- incident_management// 事件管理
|   |   |-- environmental_monitoring// 环境监测
|   |-- common/                // 通用域
|   |   |-- identity/           // 身份认证
|   |   |-- notification/       // 通知服务
|   |   |-- user_management/    // 用户管理
|   |   |-- access_control/     // 访问控制
|   |   |-- configuration/      // 配置管理
|   |   |-- logging/            // 日志记录
|   |   |-- messaging/          // 消息传递
|   |   |-- security/           // 安全服务
|   |   |-- audit/              // 审计服务
|   |-- supporting/            // 支撑域
|   |   |-- data_analytics/     // 数据分析
|   |   |-- reporting/          // 报告
|   |   |-- integration/        // 系统集成
|   |   |-- backup/             // 数据备份
|   |   |-- infrastructure/      // 基础设施管理
|-- infrastructure/
|   |-- persistence/            // 数据持久化
|   |   |-- repositories/       // 仓储接口实现
|   |-- external_integrations/  // 外部系统集成
|-- presentation/
|   |-- web/                   // Web界面
|   |-- api/                   // API接口
|-- shared/
|   |-- dtos/                  // 数据传输对象
|   |-- exceptions/            // 异常类
|   |-- utils/                 // 工具类
|-- tests/
|-- Main.java                  // 应用启动类

1、核心域划分

1.1 划分规则

核心域包含智慧城市交通管理系统中最关键的服务和功能,直接影响市民的出行体验和城市的交通运行效率。

1.2 核心域

  • Accounting
    • 子域:财务记录、预算管理、收入分配、支出跟踪、审计管理
    • 界限上下文:财务管理上下文
    • 实体:Account、Transaction
    • 值对象:MonetaryValue、Date
    • 聚合:FinancialAccount(聚合根)
    • 领域服务:AccountingService
    • 应用服务:FinanceApplicationService
    • 领域事件:FundsTransactionRecorded
    • 仓储:AccountingRepository
    • 工厂:AccountCreationFactory
  • Traffic Control
    • 子域:信号控制、流量监控、违章检测、事故报告、紧急响应
    • 界限上下文:城市交通控制上下文
    • 实体:TrafficSignal、ViolationRecord
    • 值对象:SignalTiming、TrafficVolume
    • 聚合:TrafficSignalSystem(聚合根)
    • 领域服务:TrafficControlService
    • 应用服务:TrafficControlApplicationService
    • 领域事件:TrafficSignalChangeRequested
    • 仓储:TrafficSignalRepository
    • 工厂:TrafficSignalCreationFactory
  • Public Transport
    • 子域:时刻表管理、车辆调度、票价系统、乘客信息、路线规划
    • 界限上下文:公共交通服务上下文
    • 实体:Schedule、TransportVehicle、FareSystem
    • 值对象:TimeTable、RouteMap
    • 聚合:PublicTransportNetwork(聚合根)
    • 领域服务:PublicTransportService
    • 应用服务:PublicTransportApplicationService
    • 领域事件:ScheduleUpdated
    • 仓储:PublicTransportRepository
    • 工厂:TransportScheduleFactory
  • Road Maintenance
    • 子域:维修计划、施工管理、路况报告、资源分配
    • 界限上下文:道路维护管理上下文
    • 实体:MaintenancePlan、RoadConditionReport
    • 值对象:MaintenanceResource、ConditionStatus
    • 聚合:RoadMaintenanceManagement(聚合根)
    • 领域服务:RoadMaintenanceService
    • 应用服务:RoadMaintenanceApplicationService
    • 领域事件:MaintenanceTaskCreated
    • 仓储:MaintenanceRepository
    • 工厂:MaintenancePlanFactory
  • Safety Regulation
    • 子域:规章制定、违章处理、安全教育、事故预防
    • 界限上下文:交通安全规章上下文
    • 实体:Regulation、ViolationCase
    • 值对象:RegulationText、PenaltyType
    • 聚合:SafetyRegulationSystem(聚合根)
    • 领域服务:SafetyRegulationService
    • 应用服务:SafetyRegulationApplicationService
    • 领域事件:NewRegulationPublished
    • 仓储:RegulationRepository
    • 工厂:RegulationCreationFactory
  • Toll Management
    • 子域:收费点设置、收费率计算、收费记录、资金流动
    • 界限上下文:收费管理系统上下文
    • 实体:TollBooth、TollTransaction
    • 值对象:TollRate、TransactionTime
    • 聚合:TollManagementSystem(聚合根)
    • 领域服务:TollManagementService
    • 应用服务:TollManagementApplicationService
    • 领域事件:TollRateAdjusted
    • 仓储:TollBoothRepository
    • 工厂:TollBoothFactory
  • Vehicle Registration
    • 子域:车辆登记、牌照管理、车辆检验、车主服务
    • 界限上下文:车辆注册管理上下文
    • 实体:VehicleRegistry、LicensePlate
    • 值对象:VehicleDetails、InspectionStatus
    • 聚合:VehicleRegistrationSystem(聚合根)
    • 领域服务:VehicleRegistrationService
    • 应用服务:VehicleRegistrationApplicationService
    • 领域事件:VehicleRegistered
    • 仓储:VehicleRepository
    • 工厂:VehicleRegistrationFactory
  • Incident Management
    • 子域:事故报告、应急响应、事故分析、恢复计划
    • 界限上下文:事故管理系统上下文
    • 实体:IncidentReport、EmergencyResponse
    • 值对象:IncidentType、ResponseTime
    • 聚合:IncidentManagementSystem(聚合根)
    • 领域服务:IncidentManagementService
    • 应用服务:IncidentManagementApplicationService
    • 领域事件:IncidentReported
    • 仓储:IncidentRepository
    • 工厂:IncidentReportFactory
  • Environmental Monitoring
    • 子域:排放监测、噪音监测、环境影响评估、污染控制
    • 界限上下文:环境监测系统上下文
    • 实体:EmissionMonitor、NoiseMonitor
    • 值对象:EmissionReading、NoiseLevel
    • 聚合:EnvironmentalMonitoringSystem(聚合根)
    • 领域服务:EnvironmentalMonitoringService
    • 应用服务:EnvironmentalMonitoringApplicationService
    • 领域事件:PollutionLevelExceeded
    • 仓储:EnvironmentalDataRepository
    • 工厂:MonitorInstallationFactory

2、通用域划分

2.1 划分规则

通用域提供了整个系统运行所需的基础服务和功能,支持不同核心域的业务操作。

2.2 通用域

  • Identity
    • 子域:用户认证、权限验证、身份信息管理
    • 界限上下文:身份管理系统上下文
    • 实体:UserIdentity、AuthenticationRecord
    • 值对象:PasswordHash、SecurityToken
    • 聚合:UserAccount(聚合根)
    • 领域服务:IdentityService
    • 应用服务:IdentityApplicationService
    • 领域事件:UserLoggedIn
    • 仓储:UserRepository
    • 工厂:UserCreationFactory
  • Notification
    • 子域:消息���知、邮件服务、短信服务
    • 界限上下文:通知服务上下文
    • 实体:NotificationChannel、MessageTemplate
    • 值对象:NotificationContent、RecipientList
    • 聚合:NotificationSystem(聚合根)
    • 领域服务:NotificationService
    • 应用服务:NotificationApplicationService
    • 领域事件:MessageSent
    • 仓储:NotificationRepository
    • 工厂:NotificationChannelFactory
  • User Management
    • 子域:用户注册、用户资料、用户反馈
    • 界限上下文:用户管理系统上下文
    • 实体:UserProfile、UserFeedback
    • 值对象:UserDetails、FeedbackContent
    • 聚合:UserManagementSystem(聚合根)
    • 领域服务:UserManagementService
    • 应用服务:UserManagementApplicationService
    • 领域事件:UserProfileUpdated
    • 仓储:UserManagementRepository
    • 工厂:UserProfileFactory
  • Access Control
    • 子域:角色管理、权限分配、访问日志
    • 界限上下文:访问控制系统上下文
    • 实体:Role、Permission
    • 值对象:AccessLogEntry、ActionType
    • 聚合:AccessControlList(聚合根)
    • 领域服务:AccessControlService
    • 应用服务:AccessControlApplicationService
    • 领域事件:PermissionChanged
    • 仓储:AccessControlRepository
    • 工厂:RoleFactory
  • Configuration
    • 子域:系统配置、特性开关、参数管理
    • 界限上下文:配置管理系统上下文
    • 实体:ConfigurationProfile、FeatureToggle
    • 值对象:ConfigValue、ToggleState
    • 聚合:ConfigurationSetting(聚合根)
    • 领域服务:ConfigurationService
    • 应用服务:ConfigurationApplicationService
    • 领域事件:ConfigurationUpdated
    • 仓储:ConfigurationRepository
    • 工厂:FeatureToggleFactory
  • Logging
    • 子域:日志记录、日志审计、日志分析
    • 界限上下文:日志记录系统上下文
    • 实体:LogEntry、LogArchive
    • 值对象:LogSeverity、LogMessage
    • 聚合:LoggingSystem(聚合根)
    • 领域服务:LoggingService
    • 应用服务:LoggingApplicationService
    • 领域事件:LogRecorded
    • 仓储:LogRepository
    • 工厂:LogEntryFactory
  • Messaging
    • 子域:消息队列、事件发布、消息消费
    • 界限上下文:消息传递系统上下文
    • 实体:MessageQueue、EventSubscriber
    • 值对象:MessagePayload、SubscriptionCriteria
    • 聚合:MessagingSystem(聚合根)
    • 领域服务:MessagingService
    • 应用服务:MessagingApplicationService
    • 领域事件:MessagePublished
    • 仓储:MessageQueueRepository
    • 工厂:EventSubscriberFactory
  • Security
    • 子域:数据加密、安全策略、入侵检测
    • 界限上下文:安全管理系统上下文
    • 实体:SecurityPolicy、IntrusionDetectionLog
    • 值对象:EncryptionAlgorithm、PolicyRule
    • 聚合:SecurityFramework(聚合根)
    • 领域服务:SecurityService
    • 应用服务:SecurityApplicationService
    • 领域事件:SecurityBreachDetected
    • 仓储:SecurityRepository
    • 工厂:SecurityPolicyFactory
  • Audit
    • 子域:审计日志、审计分析、合规性检查
    • 界限上下文:审计服务上下文
    • 实体:AuditLog、ComplianceCheck
    • 值对象:AuditEvent、CheckResult
    • 聚合:AuditTrail(聚合根)
    • 领域服务:AuditService
    • 应用服务:AuditApplicationService
    • 领域事件:ComplianceViolationDetected
    • 仓储:AuditRepository
    • 工厂:AuditLogFactory

3、支撑域划分

3.1 划分规则

支撑域为系统提供了非核心但必要的功能,以确保系统的稳定运行和可维护性。

3.2 支撑域

  • Data Analytics
    • 子域:数据挖掘、趋势分析、预测模型、决策支持
    • 界限上下文:数据分析服务上下文
    • 实体:DataAnalyticsModel、AnalyticalResult
    • 值对象:DataSample、StatisticMeasure
    • 聚合:AnalyticsEngine(聚合根)
    • 领域服务:DataAnalyticsService
    • 应用服务:DataAnalyticsApplicationService
    • 领域事件:InsightGenerated
    • 仓储:AnalyticsRepository
    • 工厂:DataModelFactory
  • Reporting
    • 子域:报告生成、报告调度、报告分发、报告模板
    • 界限上下文:报告服务上下文
    • 实体:ReportGenerator、ReportInstance
    • 值对象:ReportParameter、ReportFormat
    • 聚合:ReportingSystem(聚合根)
    • 领域服务:ReportService
    • 应用服务:ReportingApplicationService
    • 领域事件:ReportGenerated
    • 仓储:ReportRepository
    • 工厂:ReportInstanceFactory
  • Integration
    • 子域:第三方集成、API管理、数据交换、服务协调
    • 界限上下文:集成服务上下文
    • 实体:IntegrationEndpoint、APIDefinition
    • 值对象:IntegrationEvent、APIRequest
    • 聚合:IntegrationSystem(聚合根)
    • 领域服务:IntegrationService
    • 应用服务:IntegrationApplicationService
    • 领域事件:APIRequestReceived
    • 仓储:IntegrationRepository
    • 工厂:EndpointFactory
  • Backup
    • 子域:数据备份、备份验证、灾难恢复、备份计划
    • 界限上下文:数据备份服务上下文
    • 实体:BackupService、BackupJob
    • 值对象:BackupConfiguration、RestorePoint
    • 聚合:BackupSystem(聚合根)
    • 领域服务:BackupService
    • 应用服务:BackupApplicationService
    • 领域事件:BackupCompleted
    • 仓储:BackupRepository
    • 工厂:BackupJobFactory
  • Infrastructure Management
    • 子域:硬件管理、软件管理、资源监控、设施维护
    • 界限上下文:基础设施管理系统上下文
    • 实体:InfrastructureComponent、MaintenanceRecord
    • 值对象:ResourceMetric、MaintenanceSchedule
    • 聚合:InfrastructureManagementSystem(聚合根)
    • 领域服务:InfrastructureManagementService
    • 应用服务:InfrastructureManagementApplicationService
    • 领域事件:ComponentFailureDetected
    • 仓储:InfrastructureRepository
    • 工厂:ComponentFactory
转载自:https://juejin.cn/post/7390902948614258700
评论
请登录