一文看懂 DDD(领域驱动设计)、CQRS和Event Souring与分层架构

我最近开始学习领域驱动设计,CQRS和事件溯源。 到目前为止,我主要参与了使用“经典”N层/层架构和关系数据库的项目。 随着项目变得越来越复杂,我注意到这个模型并不总是很好。 不久之前,我写了一篇关于N层神话的文章,它已经暴露了我觉得这种类型的架构所带来的一些问题。 我尝试的第一件事是在这样的架构中应用域驱动设计。

Domain driven design

那么,实际上领域驱动设计是什么? 在领域驱动设计中,语言是最重要的因素。 我们希望的是在代码中明确表达出领域业务。 从本质上讲,作为开发人员,是希望使用与业务相同的语言。

领域驱动设计可以非常简单或非常复杂。 以下是我能想到的最简单的例子:


var acc = new Account();
var acc2 = new Account();
acc.Balance+=10;acc2.Balance-=10;
//贫血模型
public class Account {
   
    public decimal Balance
    {
   
        get;
        set;
    }
}

在这里,业务逻辑存在于我们的帐户类之外。 没有转移的概念,它只是简单地添加和减去。 这更像是一种程序编码风格,你只是在操纵数据。 下一个片段显示了一种非常简单的使用语言形式来使行为显式化(注意到setter现在是私有的):


var acc = new Account();
var acc2 
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值