Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >拉格姆如何识别哪个事件是哪个实体的

拉格姆如何识别哪个事件是哪个实体的
EN

Stack Overflow用户
提问于 2018-05-30 01:02:09
回答 1查看 125关注 0票数 0

根据关于拉格姆的讨论之一,我在这个链接中读到了

实体在任何地方都不会持久化--这就是事件来源的关键所在,您只需存储事件,这些事件可以非常简单地实现,易于分发,并且具有非常高的性能,因为它只是一个附加操作。当需要加载实体时,将加载该实体的事件,以及您声明用于处理事件的事件处理程序,然后处理每个事件以生成当前的实体状态。

我的问题是,lagom如何识别哪些事件属于哪个实体。让我们举个例子:我有一个rest服务,为用户执行CRUD操作。对于事件源,我创建了一个UserEntity类,其中为CUD操作定义了不同的命令处理程序。现在,对于我来说,当应用程序运行时,lagom生成一个UserEntity类的实例。现在,如果我为" Alice“发出创建请求,并为" Bob”创建请求,然后为"Alice“发出更新请求,那么这里有两个实体,Alice和Bob。因此,lagom如何识别实体"Alice",有两个事件,创建和更新,而对于Bob,只有一个事件创建。以及它如何将事件绑定到实体?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-30 10:51:02

描述中的误解是,lagom没有创建一个UserEntity。正确的句子是:"Lagom为我的系统中的每个用户创建一个UserEntity实例“。

诀窍是,每当您想要向持久实体实例发送事件时,都必须按类型和ID请求实例:

代码语言:javascript
运行
AI代码解释
复制
PersistentEntityRegistry persistentEntities = ...;
PersistentEntityRef<UserCommand> refAlice = 
  persistentEntities.refFor(UserEntity.class, "Alice");

在上面的片段中,Lagom保证您发送给refAlice的所有命令都将只由该实例处理。

然后,refAlice发出的任何事件都将绑定到类和ID,因此它们不能与其他实例发出的事件混在一起。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50600558

复制
相关文章
Python 类的构造函数
类的构造函数 类中的一种默认函数,用来将类实例化的同时, 将参数传入类中 构造函数的创建 def __init__(self, a, b) self.a = a self.b = b 代码 # coding:utf-8 def sleep(name): return name class Person(object): def __init__(self, name, age=None): self.name = name self.age =
Zkeq
2022/05/18
1.4K0
反射类的构造函数
<!-- 首先,通过Class获取类的字节码 Class clazz = Class.forName("com.marer.reflect.Person"); 然后,利用Constructor创建对象 Constructor c = clazz.getConstructor(null);//获取无参的构造函数 Constructor c = clazz.getConstructor(String.class);//获取参数为String的构造函数 Constructor c = clazz.getConstructor(String.class, int.class);//获取参数为String,int的构造函数 Constructor c = clazz.getDeclaredConstructor(List.class);//获取隐藏为private的构造函数 c.setAccessible(true);//暴力反射 创建对象的另外一种途径,反射出类的无参构造函数并创建对象 Class clazz = Class.forName("com.marer.reflect.Person"); Person p = (Person) clazz.newInstance(); 但是当无参的构造函数为private或不存在的时候,反射抛异常 转载请注明出处:http://blog.csdn.net/nthack5730/article/details/49822819 但是可以通过暴力反射获取类的隐藏构造函数: Constructor.setAccessible(true);
MonroeCode
2018/01/11
1.1K0
类的成员函数(构造、析构、拷贝构造、赋值、运算符重载)的实现
以String类为例实现其成员函数 class String { //友元函数重载运算符 friend ostream& operator<<(ostream &out,String& str); friend istream& operator>>(istream& in, String& str); public: //通用构造函数 String(const char* str) { if(!str) //对m_data加NULL判断 { length = 0; m_da
WindSun
2019/08/30
1.1K0
解析C#类中的构造函数
彭泽0902
2018/01/04
3.5K0
类中的构造方法
构造方法是正常开发中不可或缺的一部分,是语法上必须存在的。是一个具有特殊格式的方法,且有特殊的调用方式。
星哥玩云
2022/09/14
1.1K0
类中的构造方法
成员以其在类中声明的顺序构造
分析以下代码的输出: #include<iostream> using namespace std; class A { public: A(int j):age(j) , num(age + 1) { cout<<"age:"<<age<<",num:"<<num<<endl; } protected: int num; int age; }; void main() { A sa(15); }  运行结果:age:15 , num:2(num为一个随机数) 由于按成员在类定义中的声明
猿人谷
2018/01/17
1.6K0
dart系列之:dart类中的构造函数
dart作为一种面向对象的语言,class是必不可少的。dart中所有的class,除了Null都继承自Object class。 要想使用dart中的类就要构造类的实例,在dart中,一个类的构造函数有两种方式,一起来看看吧。
程序那些事
2021/11/14
3.4K0
C++中类的构造函数和析构函数
构造函数 对象创建的时候执行 student s //空参构造函数 栈内存中 student s("测试")//带参构造函数 栈内存中 或者 student *s=new student//空参构造函
乱码三千
2021/07/29
2.1K0
C++中类的构造函数和析构函数
dart(四)--类、构造函数、方法dart(四)--类、构造函数、方法
类 构造函数 构造函数 className 或 className.identifier, 关键字 new 可选. 构造函数语句执行顺序:初始化器,父类构造函数,子类构造函数。 class Point { num x, y, distance; /* 1,匿名构造函数 2,使用this.x 简化写法,原写法: Point(num x , num y) 3,此处 : 后为初始化器,初始化的结果赋值给初始化器的对象,是最简洁的方式。
用户8893176
2021/08/09
1.4K0
小朋友学C++(10):子类构造函数调用父类构造函数
从哲学层面来看,子类会继承父类除private以外的所有成员。 因为构造函数是公有的,所以理所当然地会被子类继承。 程序1: #include <iostream> using namespace std; class Shape { public: Shape() { cout << "Shape's constructor method is invoked!\n"; } }; class Rectangle : public Shape { public:
海天一树
2018/04/17
1.5K0
类的构造函数和析构函数
一、构造函数和析构函数的由来 类的数据成员不能在类的声明时候初始化,为了解决这个问题? 使用构造函数处理对对象的初始化。构造函数是一种特殊的成员函数,与其他函数不同,不需要用户调用它,而是创建对象的时
用户5521279
2019/06/02
1.9K0
虚函数中构造函数的调用顺序
1 /*曾经有段时间一直被构造函数中的虚函数所困扰,现在通过自己重新学习了一遍,标注一下容易忘记的知识*/ 2 #include<iostream> 3 using namespace std; 4 class Base0 5 { 6 public: 7 Base0(int var):var0(var) 8 { 9 cout<<"Construct base0"<<endl; 10 } ; 11 int var0; 12 void fun()
Gxjun
2018/03/22
3.7K0
虚函数中构造函数的调用顺序
构造Python中的常量类
通过命名风格来提示使用者该变量代表的意义为常量,比如MAX_NUMBER、TOTAL。然而这种方式并没有真正实现常量,其对应的值仍然可以被改变,这只是一种约定俗成的风格。
py3study
2020/01/07
3.4K0
matlab中类的重载简析
MyData bar 方法与 MATLAB bar 函数同名。但是,MyData bar 方法需要 MyData 对象作为输入。由于该方法针对 MyData 对象而特化,因此它可以从 Data 属性中提取数据并创建特化图。
演化计算与人工智能
2020/08/14
3560
python中类的构造方法
如果是继承关系,那么子类也有构造方法。如果子类存在构造方法,继承关系成立后,最终的结果也还是以子类的构造方法为准。
刘金玉编程
2019/08/13
2.2K0
Android 通过 JNI 调用 Java 类的构造方法和父类的方法
Android 还可以通过 JNI 来调用 Java 一个类的构造方法,从而创建一个 Java 类。
音视频开发进阶
2019/07/26
2.8K0
ASP.NET AJAX(6)__Microsoft AJAX Library中的面向对象类型系统命名空间类类——构造函数类——定义方法类——定义属性类——注册类类——抽象类类——继承类——调用父类方
如果我们可以合理的使用面向对象编程,我们可以提高代码的复用性和可维护性,这里强调的是合理的使用,有了面向对象类型系统,就可以使用一些成熟的设计方式 命名空间 合理的组织大量的类型,使开发人员能够方便的找到他们所需要的类型 可重复注册命名空间,每个独立的脚本模块前都要注册命名空间以保证命名空间存在 类 定义构造函数 定义成员(方法、属性、事件) 注册类 类——构造函数 类的构造函数即为function定义 通常用于初始化域变量 自由成员使用下划线开头(形式上的封装) 类——定义方法 使用prototype定义
小白哥哥
2018/03/07
6.3K0
C++ 类构造函数&解析函数
类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数 constructor,它通过声明一个与 class 同名的函数来定义。当且仅当要生成一个 class 的新的实例 (instance)的时候,也就是当且仅当声明一个新的对象,或给该 class 的一个对象分配内存的时候,这个构造函数将自动被调用。
嵌入式视觉
2022/09/05
1.6K0
C++ 类构造函数&解析函数
点击加载更多

相似问题

Angular扩展类构造函数重载

232

在函数中调用扩展类的构造函数

10

扩展类PHP时重载函数构造

11

Blackberry Screen类中的超级构造函数调用

41

在Java中调用超类的重载构造函数

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档