欢迎光临汤雪华的博客

一个人一辈子能坚持做好一件事情就够了!坚持是一种刻意的练习,不断寻找缺点突破缺点的过程,而不是重复做某件事情。
随笔 - 138, 文章 - 0, 评论 - 2130, 阅读 - 151万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

邮箱核心业务领域建模

Posted on   netfocus  阅读(3451)  评论(0编辑  收藏  举报

邮箱核心业务场景:

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

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

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

核心领域模型文字版

共2个模型,如下:

邮件(Mail,聚合根):

  • ID
  • 标题
  • 内容
  • 附件
  • 是否重要:是、否
  • 发送人邮箱地址
  • 收件人邮箱地址列表(支持多个,逗号隔开)
  • 创建时间
  • 最后更新时间
  • 发送时间
  • 状态:草稿、已发送

支持场景:创建邮件存为草稿、发送邮件、查看草稿邮件、查看已发送邮件、删除邮件

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

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

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

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

关于邮件投递过程

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

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示