EntityChangeEvent 最重要的两个变量:ItemEvent、ChildrenEvent。
ItemEvent 的功能流转:
从整个跳转图可以看出,这个功能的作用是 -- 自动将数据修改保存至redis。
1. 首先要逐层地“AddChildrenListener”,将上层的 NotifyByChildren 作为订阅,给下层的 ItemEvent 来发布;
2. 要手动封装属性的“set”,修改结果的同时,发布对象的 ItemEvent - notify,逐层往上;
3. 最顶端的 NotifyByChildren 是被 AbstractEntity 重写过的,负责向 redis 同步数据;
ChildrenEvent 的作用看起来则相反,是从上层逐层向下的、调用每一层的 UnChangeNotify,可以失效属性的通知功能。