当前位置: 首页 >  电商服务 >  Cola4.0 - DDD 设计思想

Cola4.0 - DDD 设计思想

导读:cola前言.COLA提供了一整套代码架构,拿来即用。 其中包含了很多架构设计思想,包括讨论度很高的领域驱动设计DDD等。.COLA 的分层是一种经过改良的三层架构,主要是讲传统的业务逻辑层拆分为展示层、应用层、领域层和基础设施层。.展示层(Presentation Layer)

cola前言

COLA提供了一整套代码架构,拿来即用。 其中包含了很多架构设计思想,包括讨论度很高的领域驱动设计DDD等。

COLA 的分层是一种经过改良的三层架构,主要是讲传统的业务逻辑层拆分为展示层、应用层、领域层和基础设施层。

  1. 展示层(Presentation Layer):负责以 Rest 的风格接收 Web 请求,然后将请求路由给 Application 层执行,并返回视图模型(View Model),其载体通常是数据传输对象(Data Transfer Object, DTO);
  2. 应用层(Application Layer):主要负责获取输入、组装上下文、做输入校验、调用领域层做业务处理,当需要时发送消息通知。当然,层次是开放的,若有需要,应用层也可以直接访问基础设施层;
  3. 领域层(Domain Layer):主要封装了核心业务逻辑, 并通过领域服务(Domaini Service)和领域对象(Entities)的函数对外部提供业务逻辑的计算和处理;
  4. 基础设施层(Infrastructure Layer):主要包含数据访问通道(Tunnel)、Config 和 Comon。这里Tunnel这个概念对所有的数据来源进行抽象,数据来源可以是数据库(MySQL/NoSQL)、搜索引擎、文件系统,也可以是SOA服务等;Config 负责应用的配置;Common是通用的工具类;

cola组件规范

分层架构图

cola包结构

应用层的包结构

领域层的包结构

基础设施层的包结构

命名规范

在COLA架构中,制定了一系列的命名规范,以便通过名称就能知晓该类的作用和职责范围,从而极大的提升代码的可理解性,提升代码审查的效率

规范 用途 解释
xxxCmd.java Client Request Cmd代表Command,表示一个用户请求
xxxCo.java Client Object 客户端对象,用于传递数据,等同于DTO
xxxServiceI.java API Service API接口类
xxxCmdExe.java Command Executor 命令模式,每一个用户请求对应的一个执行器
xxInterceptor.java Command Interceptor 拦截器,用于处理切面逻辑
xxxExtPt.java Extension Point 扩展点
xxxExt.java Extension 扩展实现
xxxValidator.java Validator 校验器,用于校验的类
Convertor Convertor 转化器,实现不同层级对象互转
xxxAssembler.java Assembler 组装器,组装外部服务调用参数
xxxE.java Entity 代表领域实体
xxxV.java Value Ojbect 代码值对象
xxxRepository.java Repository 仓储接口
xxxDomainService.java Domain Service 领域服务
xxxDo.java Data Object 数据对象,用于持久化
xxxTunnel.java Data Tunnel 数据通道,DAO 是最常见的通道,也可是其他通道
xxxConstant.java Constant class 常量类
xxxConfig.java Configuration clas 配置类
xxxUtil.java Utility class 工具类
内容
  • 漫谈垃圾回收算法
    漫谈垃圾回收算法
    2023-12-02
    GC简介:垃圾回收(Garbage Collection)也被称为自动内存管理技术,在现代编程语言中使用得相当广泛,常见
  • 驱动开发:内核文件读写系列函数
    驱动开发:内核文件读写系列函数
    2023-12-02
    在应用层下的文件操作只需要调用微软应用层下的API函数及C库标准函数即可,而如果在内核中读写文件则应用层的API显然是无
  • Unity_Photon
    Unity_Photon
    2023-12-07
    Photon.1.0 Photon搭建.(2条消息) 【Unity3D】Photon环境搭建_photon框架_litt
  • Creator 2.x 升级 3.x 基础 API 差异总结
    Creator 2.x 升级 3
    2023-12-03
    上一篇我们介绍了 Cocos Creator 2.x 项目升级 3.x 的大流程。.但最后一步,还需要手动将之前 2.x
  • 手画图解,关于死锁,面试的一切都在这里了
    手画图解,关于死锁,面试的一切都
    2023-12-01
    什么是死锁(Deadlock).死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力
  • 耗资百万的TPS第三人称射击『赛博朋克』游戏,免费开源啦!下载攻略奉上
    耗资百万的TPS第三人称射击『赛
    2023-12-08
    Cocos引擎最近开源了《赛博朋克》游戏源码,这是一个TPS第三人称视射击游戏。.项目包含13W行源代码,50W外包美术