• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

COLA 架构使用规范化

武飞扬头像
”PANDA
帮助1

基础架构图

学新通

  • Adapter 适配层:对前端展示的路由和适配。
    VO:返回给前端的对象
    assembler:将 responseDTO 转换为 VO
    web:处理页面请求的 Controller
    wap:处理手机端请求的 Controller
  • Application 应用层:负责获取输入,组装上下文,调用领域层做业务流程编排,如果需要的话,发送消息通知等。若只是简单操作,应用层还可直接绕过领域层,访问基础层。避免在 Application 层做入参校验,可以通过 JSR303/380 和 Spring Validation 来前置校验。如何判断是否属于业务流程:不要有 if/else 分支逻辑,除非是 if 条件对象判空返回或者抛异常终止。
    DTO:数据转换对象,只是为了和外部交互,所以本身不包含任何逻辑,属于贫血对象,包括 req 请求 DTO 和 res 响应 DTO
    converter:实现 dto 与 model 之间转换或 dto 与 po 之间转换
    consumer:处理外部消息通知,比如 MQ 消息
    executor:处理 request,包括 command 和 query 两种(一般可用 CmdExe 表示)
    scheduler:处理定时任务
    rpc:实现 Client 中供外部调用的 Facade 接口,FacadeImpl
  • Client:封装 sdk 供外部调用
    api:供外部调用的 Facade 接口
    DTO:供外部使用的接口对应的 DTO
    enums:枚举类
  • Domain 领域层:封装核心业务逻辑,并通过领域服务(Domain Service)和领域对象(Domain Entity)向 App 层提供业务逻辑计算和业务实体。领域是应用的核心,不依赖其他任何层次。
    model:领域模型,包含数据和行为
    gateway:领域网关,与外部解耦利器
    ability:领域能力,包括 DomainService,当某个行为影响到多个 Entity 时,属于跨实体的业务逻辑,在这种情况下就需要 DomainService 来完成,即业务需要涉及到多个 gateway
  • Infrastructure 基础实施层:处理技术细节,比如数据库 CRUD、搜索引擎、文件系统等,领域防腐的重任也落在这层,通过调用外部接口获取到的外部对象转换为实际 Domain 层所定义的对象模型,从而不直接使用外部对象。
    PO:与数据库表一个一个地映射关系,每个字段对应数据库表的一个 column,PO 只有数据,没有行为
    factory:model 与 po 之间转换
    mapper:数据库映射,持久化操作
    common:工具包
    gatewayImpl:网关实现

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfekfa
系列文章
更多 icon
同类精品
更多 icon
继续加载