如何设计项目模块以及如何设计分层结构?

12 阅读2分钟

模块设计

在设计项目模块时,需要根据具体业务需求和功能划分,将不同的功能模块分解开来,保持各个模块之间的高内聚、低耦合。同时,要遵循单一职责原则,确保每个模块只负责一个特定的功能或领域

项目模块

项目模块抽象出来:

  1. 登录模块(sso)

  2. 后端(Web)

  3. 管理模块(admin)

  4. 公共模块(Common):

    • 包含各种通用的工具类、常量定义、异常处理等公共功能。
    • 可以提供跨模块共享的功能,如权限控制、日志记录、异常处理等。
    • 被其他模块依赖。

分层设计

mvc

  1. 模型model
  2. 视图view
  3. 控制controller

ddd架构

基于DDD(领域驱动设计)架构的项目模块设计可以更加注重业务领域的划分,同时保持分层的结构。以下是一个基于DDD的项目模块设计示例:

  1. API模块(Controller):

    • 这一层是整个应用程序的入口,负责接收HTTP请求并将其转发给服务层进行处理。
    • 包括SSO登录模块、Web后端模块、Admin管理模块等各个业务模块的控制器。
  2. 服务模块(Service):

    • 抽象出业务逻辑的流程,负责协调领域模型的调用和数据的处理。
    • 包括各种业务场景下的服务类,如用户服务、权限服务、订单服务等。
  3. 领域模块(Domain):

    • 复用
    • 包含核心的业务逻辑和领域模型,是整个应用程序的核心部分。
    • 包括各种业务领域的模型、实体、值对象、聚合根等。
  4. 数据访问模块(DAO):

    • 负责与数据存储(如数据库)进行交互,执行CRUD操作。
    • 可以使用MyBatis等ORM框架来简化数据库操作。
  5. 模型模块(Model):

    • 包含各种数据模型和数据结构的定义,用于表示领域模型和数据库表的映射关系。