当前位置: 首页 > news >正文

网站虚拟主机各种网站

网站虚拟主机,各种网站,商务网站建设,企业数据原文链接#xff1a;https://logcorner.com/building-microservices-through-event-driven-architecture-part2-domain-objects-and-business-rules/在本文中#xff0c;我将实现领域模型#xff1a;EduSync.Speech.Domain这是包含核心域的最内层。它包含我们的领域对象和业… 原文链接https://logcorner.com/building-microservices-through-event-driven-architecture-part2-domain-objects-and-business-rules/在本文中我将实现领域模型EduSync.Speech.Domain这是包含核心域的最内层。它包含我们的领域对象和业务规则。并定义我们的外部接口。不允许使用数据库、网络连接、文件系统、UI或特殊框架。核心领域对自身以外的任何事物一无所知。这些依赖项及其实现使用接口注入到我们的核心域中。在上一步结束时我们最终得到了一个贫血领域模型。所以让我们从丰富它开始。充血领域模型贫血领域模型是DDD世界中的一种反模式因此在本节中我将使用值对象将领域模型与数据契约分离。贫血领域模型是一种领域模型其中数据和对该数据的操作彼此分离。换句话说只有属性的类和处理这些属性的方法位于另一个类中。因此这些其他类既可以读取数据也可以修改数据。所以领域类必须有public setter。这是缺乏封装反模式。让我们从验证Title开始。我的第一个测试是Title长度必须大于10个字符且小于60个字符测试将失败因此让我们实现Title验证Title值对象实体和值对象的主要区别在于如何识别它们。实体由引用相等和标识相等标识。值对象由引用相等和结构相等来标识。引用相等如果两个对象引用内存中的同一个对象则它们相等标识相等如果两个对象具有相同的标识则它们相等结构相等如果两个对象的所有成员都相等则两个对象相等实体具有Id字段并且是可变的而值对象没有Id字段并且是不可变的。值对象没有实体就没有意义它必须属于一个实体。考虑以下情况2辆相同型号、相同颜色、相同年龄等的车辆……总是2辆不同的车辆因为每辆车都有自己的标识车辆是一个实体。2个所有字段都相等的地址相同的街道号码、相同的城市、相同的国家等等是完全相同的地址地址是一个值对象。Title的第一个实现如下所示请记住值对象由引用相等和结构相等来标识.所以右键单击Title类并选择生成 Equals和GetHashCode。Title只有一个值因此选择它并单击确定Title现在是一个值对象它的最终实现看起来像这样这是Title值对象的单元测试。如果它们具有相同的值我应该验证2个标题是否相等如果不是则不同URL值对象验证Url的所有逻辑都在名称为UrlValue的值对象中实现Type值对象验证SpeechType的所有逻辑都在名称为SpeechType的值对象中实现Speech领域对象如下所示实体和聚合请记住实体由引用相等和标识相等标识并具有Id字段。因此让我们创建一个基本实体类Entity并在Id字段上生成Equals和GetHashCode。如果2个实体E1和E2具有相同的id则 E1E2应该返回trueDDD聚合是可以作为单个单元处理的领域对象的集群。例如订单及其订单项它们将是单独的对象但将订单及其订单项视为单个聚合非常有用。聚合应该始终处于有效状态并且每个聚合都有一个根是一个实体不属于该聚合的类只能引用聚合根。因此让我们创建一个继承自Entity的基类AggregateRoot我将其设为泛型因为T是Id字段的类型并且它可以根据这些实体而变化 领域事件领域事件通过避免直接调用来实现有界上下文之间的通信。所以一个有界上下文B1引发一个事件一个或多个有界上下文B2…Bn对此事件的子订阅方应该处理该事件以使用它。因此让我们创建一个基类DomainEvent 但是在这里由于我实施事件溯源的策略我的有界上下文产生的所有事件都将保存在我的事件存储中。对这些事件感兴趣的其他有界上下文、服务或其他程序将必须订阅服务总线。比如我每次创建一个新的Speech然后我都会创建一个SpeechCreatedEvent事件SpeechCreatedEvent类必须从DomainEvent基类继承 聚合根的最终实现将如下所示: 因为Speech实体是聚合根所以让我们继续从AggregateRoot继承它Speech实体的Id字段是一个 Guid让我们添加一些测试来覆盖 domainEvents LogCorner.EduSync.Speech.Application和LogCorner.EduSync.Speech.Domain是100%的代码覆盖率 欢迎关注我的个人公众号”My IO“
http://www.yutouwan.com/news/9471/

相关文章:

  • 网页设计构建的基本流程郑州网站建设专业乐云seo
  • 网站建设专业公司稻香村网站建设
  • 自己做网站的图片wordpress 搬家 密码
  • 网站空间便宜自学网站开发多久
  • 怎样提交网站地图广州软件开发外包公司
  • 新闻型网站建设电子商务书店网站设计实验
  • 网站建设标书样本现在公司做各网站要多少钱
  • 电子商务网站建设关于实验室建设的英文网站
  • 鞍山公司网站建设seo软件简单易排名稳定
  • 北京欢迎您网站建设网站建设竞价托管服务
  • 快速做网站服务好wordpress 元描述
  • 网站开发属于软件设计嘛淘宝关键词搜索量查询工具
  • 网站导航栏固定wordpress软件下载源码
  • 杭州门户网站建设公司免费网站收录提交
  • 个人网站方案建设书精品网络小说
  • 哈尔滨网站建设推广方案适合设计师的网站
  • wordpress页面更好看seo教程 百度网盘
  • 企业网站建设怎么做昆明的花仙子制作的企业
  • 佛山市平台购物网站制作公司网站后台如何更换在线qq咨询代码
  • 济宁贵网站建设免费咨询图片
  • 全能网站建设鞍山建设工程信息网站
  • 做文献的ppt模板下载网站通用企业网站织梦模板(红绿蓝三色)
  • 建站网站 国外网站建设计划时间节点
  • 岳阳有哪几家做网站的淘宝网网站建设的需求分析
  • 旅游网站开发系统的er图平阳县建设局网站
  • 个人网站做电商软件定制项目
  • 做网站的上海市哪家技术好php网站开发外文文献
  • 企业管理生产管理系统深圳关键词优化
  • 网站后台的数据库怎么做深圳网站建设 信科网络
  • 利趣网站开发商react.js做的网站