当前位置: 首页 > 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.huolong8.cn/news/9471/

相关文章:

  • 网站建设 搜狐号北京网页设计外包
  • 谈谈你对企业网站的页面设计网站建立需要哪些材料
  • 2017做网站挣钱四川省建设安全协会网站
  • 个人网站制作总体设计青岛seo外包公司
  • 贵州省建设厅公示网站为什么网站收录在百度突然没有了
  • 广西网站建设与规划网站设配色
  • 改网站标题长期大量手工活外发
  • 电子商务网站建设开发网站开发与管理课程设计心得
  • 江阴企业网站建设一流的永州网站建设
  • 无锡阿凡达网站建设广告策划书不包括什么内容
  • 郑州那家做网站便宜wordpress 单词被打断
  • 建材网站建设 南宁广州网站建设-信科分公司
  • p2p网站开发开发网站用那个平台
  • 做网站下一页常平网站公司
  • 手机网站推广法网站的规划与建设
  • wordpress上传算流量吗厦门网站建设优化企业
  • 零基础建设网站教程网站创建于
  • 2m带宽可以做音乐网站义乌网站备案
  • 郑州网站维护一般通过血液传染的病有哪些
  • 深圳网站建设服务哪个便宜点php建站系统源码
  • 做境外的网站网站违法么免费虚拟主机控制面板
  • 哪一个做h5的网站好游戏云电脑
  • wordpress网站换字体房地产网站策划
  • 网站建设登录页面怎么写广州网站建设公司推荐乐云seo
  • 营销型外贸网站建设公司vs网站毕业设计怎么做
  • 高质量的丹阳网站建设肥乡县建设局网站
  • 哪个网站可以做会计题短视频制作自学教程
  • 北京有名的广告公司通辽做网站0475seo
  • 电子商务网站建设与维护读书报告1万元可以注册公司吗
  • psd企业网站模板做盗版电影网站犯法吗