MIL基本语法

引言

在Microsoft推出的《CQRS Journey》一书中提到了工具MIL(Messaging Intermediate Language),它采取消息驱动的方式,用于描述对象间的交互场景。

本文就其基本语法进行了简要整理(已根据个人习惯稍作更改)。

详见 SawMIL toolbox

Command与Event

?标记Command。在Command及其Handler间总是一对一的关系,所以写在同一行上。

Command? => CommandHandler

!标记Event。在Event及其Handler间允许存在一对多的关系,所以每行对应一个Handler。

Event! =>
  => EventHandler_1
  => EventHandler_2

State

$标识State(原作者用的*)

$State = newState

聚合根

@标识聚合根

@AggregateRoot

用范围符::定义聚合根内产生新的事件

@AggregateRoot::Event! => .

@AggregateRoot:
               :Event_1! => .
               :Event_2! => .

其他

// 定义.::操作符

Class.Property
Package::Class

当没有接收方时,用.指代

Event! => .

当不需要经过消息中间件传递消息时,用->替代=>(原作者统一使用的->

@Aggregate::Event! =>
  -> Router::RouteHandler
posted @ 2021-04-29 17:18  没头脑的老毕  阅读(157)  评论(0编辑  收藏  举报