共三个模型,如下:
草稿邮件(DraftMail,聚合根):
支持场景:创建邮件(但不发送出去,只是保存草稿)、查看草稿箱、删除草稿邮件
=================================================
已发送邮件(SentMail,聚合根):
支持场景:发送邮件、查看已发送邮件、删除已发送邮件
=================================================
已接收邮件(ReceivedMail,聚合根):
支持场景:接收邮件、删除邮件、标记邮件各种状态、查看邮件:已接收、是否已读、是否重要、是否删除、是否垃圾邮件
除了发送邮件、接收邮件外,应该还有一个投递邮件的过程。投递邮件可以由一个独立的投递服务来完成。投递服务负责将当前邮件按照收件人邮箱地址,一个个进行投递,每个收件人邮箱都会收到一个邮件的消息,该消息包含了已发送邮件的所有信息。邮件接收服务可以为每个收件邮箱接收邮件,针对每个接收邮箱地址,new一个ReceivedMail聚合根对象,持久化即可。
原文:https://www.cnblogs.com/yanglang/p/11136409.html