领域模型的代码结构梳理

本文详细介绍了软件工程中的一种模块化结构设计,包括common、client、domain、biz、resource和api六个主要模块,每个模块都有明确的职责划分。common包含公共常量、枚举、util和异常处理;client实现富客户端功能;domain负责领域模型、服务、仓库等;biz实现业务流程;resource专注于数据访问;而api则提供业务接口。这种设计有利于代码的组织和维护。
摘要由CSDN通过智能技术生成

工程结构介绍

模块依赖关系

                                  --------------
                                  |            |
                                  |   common   |
                                  |            |
                                  --------------
                                 /              \
                                /                \
                               /                  \
                             |/_                  _\|
                  --------------                    --------------
                  |            |                    |            |
                  |   domain   |                    |   client   |
                  |            |                    |            |
                  --------------                    --------------
                 /              \
                /                \
               /                  \
             |/_                  _\|
 --------------                    --------------
 |            |                    |            |
 |    biz     |                    |  resource  |
 |            |                    |            |
 --------------                    --------------
               \                  /     
                \                /  
                 \              /   
                 _\|          |/_   
                  -------------- 
                  |            | 
                  |    api     | 
                  |            | 
                  -------------- 

各模块职责

  • common:公共包,含公共常量&通用定义,服务接口定义
    • 公共常量const、枚举enum、通用util类、异常类
    • RPC服务接口定义Service
    • 输入输出对象:Request、Response、DTO
    • 代码结构如下
      - com.${company}.${deparment}.${business}.${appname}
      |- common
      | |- consts
      | |- enums
      | |- utils
      | \_ exception
      |- module
      | |- request
      | |- response
      | \_ dto
      \_ service
      
  • client:实现富客户端
    • 富客户端
    • 代码结构如下
      - com.${company}.${deparment}.${business}.${appname}
      \_ client
      
  • domain:领域层
    • 领域模型层:领域对象model、领域服务service、资源库repository、事件event、命令command
    • 查询处理器queryHandler
    • 代码结构如下
      - com.${company}.${deparment}.${business}.${appname}
      \- domain
        |- handler
        |- model
        |- service
        |- command
        |- eventInstance
        \- respositry
      
  • biz:业务层
    • 实现业务流程、业务处理节点
    • 代码结构如下
      - com.${company}.${deparment}.${business}.${appname}
      |- flow
      \- process
      
  • resource:资源层,实现数据访问
    • 含数据访问层dal、数据访问对象dao、数据库配置config、数据对象entity、数据映射mapper、数据对象&领域对象工厂
    • 代码结构如下
      - com.${company}.${deparment}.${business}.${appname}
      \- resource
        |- dal
        |- dao
        |- config
        |- entity
        |- mapper
        \- factory
      
  • api:应用层(api),实现业务api
    • 定义api层接口(HTTP协议、RPC协议)
    • 代码结构如下
      - com.${company}.${deparment}.${business}.${appname}
      |- api
      | \- rpc
      |  \- impl
      \- web
        |- controller
        |- config
        \- filter
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值