zoukankan      html  css  js  c++  java
  • 邮箱核心业务领域建模

    邮箱核心业务场景:

    • 发邮件
    • 收邮件
    • 查看邮件

    邮箱业务我们关注的核心信息

    • 草稿箱
    • 收件箱
    • 已发送邮件
    • 未读邮件
    • 重要邮件
    • 垃圾邮件
    • 已删除邮件

    核心领域模型文字版

    共三个模型,如下:

    草稿邮件(DraftMail,聚合根):

    • ID
    • 标题
    • 内容
    • 所属Owner邮箱地址
    • 创建时间

    支持场景:创建邮件(但不发送出去,只是保存草稿)、查看草稿箱、删除草稿邮件

    =================================================

    已发送邮件(SentMail,聚合根):

    • ID
    • 标题
    • 内容
    • 是否重要
    • 发送人邮箱地址
    • 收件人邮箱地址列表(支持多个,逗号隔开)
    • 发送时间

    支持场景:发送邮件、查看已发送邮件、删除已发送邮件

    =================================================

    已接收邮件(ReceivedMail,聚合根):

    • ID
    • 标题
    • 内容
    • 发件人邮箱地址
    • 收件人邮箱地址(单个收件人)
    • 原始收件人邮箱地址列表(发送邮件时填写的收件人列表,逗号隔开,该信息只用于信息查看,当我要查看这封邮件是发送给哪些人的时候用)
    • 是否已读:是、否
    • 是否重要:是、否
    • 是否删除:是、否
    • 是否垃圾邮件:是、否
    • 接收时间

    支持场景:接收邮件、删除邮件、标记邮件各种状态、查看邮件:已接收、是否已读、是否重要、是否删除、是否垃圾邮件

    关于邮件投递过程

    除了发送邮件、接收邮件外,应该还有一个投递邮件的过程。投递邮件可以由一个独立的投递服务来完成。投递服务负责将当前邮件按照收件人邮箱地址,一个个进行投递,每个收件人邮箱都会收到一个邮件的消息,该消息包含了已发送邮件的所有信息。邮件接收服务可以为每个收件邮箱接收邮件,针对每个接收邮箱地址,new一个ReceivedMail聚合根对象,持久化即可。

  • 相关阅读:
    31天重构学习笔记21. 合并继承
    31天重构学习笔记15. 移除重复内容
    31天重构学习笔记22. 分解方法
    31天重构学习笔记18. 使用条件判断代替异常
    31天重构学习笔记19. 提取工厂类
    31天重构学习笔记24. 分解复杂判断
    31天重构学习笔记17. 提取父类
    大型项目的发布部署:第一章:发布部署流程
    HDU 2036 改革春风吹满地 数学题
    HDU 2051 Bitset
  • 原文地址:https://www.cnblogs.com/yanglang/p/11136409.html
Copyright © 2011-2022 走看看