专栏首页领域驱动设计DDD实战进阶领域驱动设计案例之领域层实体与聚合根实现

领域驱动设计案例之领域层实体与聚合根实现

在领域层中,可以实现实体与聚合根的业务逻辑,在实现业务逻辑之前,我们首先要确定实体和聚合根的一些基本行为,比如判断实体是否相等。关于领域对象的具体业务逻辑实现,因为涉及到要与数据库交互,所以等看完仓储的实现后,再实现领域对象的业务逻辑。

using System;
using Order.Domain.Aggreate;

namespace Order.Domain.Model
{
    public abstract class Entity : IEntity
    {
        private Guid id = Guid.NewGuid();
        public Guid Id { get { return id; } }
        public override bool Equals(object obj)
        {
            if (obj == null)
                 return false;
            if (ReferenceEquals(this, obj))
                return true;
            return this.Id == (obj as IEntity).Id;

        }
        public override int GetHashCode()
        {
            return this.Id.GetHashCode();
        }
    }
}
namespace Order.Domain.Model
{
    public abstract class AggreateRoot:Entity
    {
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DDD实战进阶第一波(六):开发一般业务的大健康行业直销系统(实现产品上下文仓储与应用服务层)

    前一篇文章我们完成了产品上下文的领域层,我们已经有了关于产品方面的简单领域逻辑,我们接着来实现产品上下文关于仓储持久化与应用层的用例如何来协调 领域逻辑与仓储持...

    用户1910585
  • DDD实战进阶第一波(六):开发一般业务的大健康行业直销系统(实现产品上下文仓储与应用服务层)

    用户1910585
  • 16-TypeScript装饰器模式

    在客户端脚本中,有一个类通常有一个方法需要执行一些操作,当我们需要扩展新功能,增加一些操作代码时,通常需要修改类中方法的代码,这种方式违背了开闭的原则。 装饰器...

    用户1910585
  • 「拥抱开源」从零开始 Docker、Mysql & JPA

    为了降低项目成本,我们有一套完整的 MySQL 开源社区版集群。希望能在低成本的基础上,带来期望的收益。

    FoamValue
  • javaWeb综合案例

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    海仔
  • IP是XCI还是XCIX

    Vivado提供了以IP为中心的设计流程。除了Vivado自带的IP Catalog之外,还可以通过以下途径扩展IP Catalog。比如:将System Ge...

    Lauren的FPGA
  • webpack多页面开发与懒加载hash解决方案

    本文内容只适用于webpack v1版本,webpack v2已经修复了hash计算规则。 之前讨论了webpack的hash与chunkhash的区别以及各...

    寒月十八
  • Linux 启动流程 -- 按下电源后发生的那些事儿

    扫帚的影子
  • Python获取本机 IP/MAC(多网

      通过gethostname获取主机名,再用gethostbyname将主机名转换为IP地址。

    py3study
  • 一文搞定pandas的数据合并

    在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能。

    皮大大

扫码关注云+社区

领取腾讯云代金券