Advertisement

DDD - CQRS 概念

阅读量:

1 背景

1988年,Bertrand Meyer在其关于面向对象软件设计的著作中提出了CQS原则。该原则的核心理念在于,程序的功能应仅限于两种类型:一种是对系统状态进行修改的操作(Command),另一种是获取系统信息的查询操作(Query),从而在软件架构中实现命令与查询功能的分离。

Martin Fowler在2005年的一篇博客文章中也曾指出,这种分离在实际应用中并不总是可行。一个典型的实例是当需要获取刚刚插入记录的id时,首先必须完成记录的持久化操作(即Command),随后才能获取该记录所分配的新id(即Query)。

2 什么是CQRS

CQRS,全称为Command Query Responsibility Segregation,顾名思义,是一种将命令(Command)与查询(Query)进行分离的设计模式。查询这一概念较为直观,即我们之前所提到的「数据检索」操作。那么命令又具体指什么呢?

CQRS将系统中的各类操作划分为两个类别:「命令」(Command)和「查询」(Query)。其中,命令指的是所有会导致数据状态发生改变的操作,例如新增、更新或删除等行为。而查询则与字面含义一致,指的是那些不会改变数据状态的操作,仅用于根据特定条件查找所需信息。

CQRS的核心理念在于将这两类操作进行区分,并分别在两个独立的「服务」中加以实现。这

全部评论 (0)

还没有任何评论哟~