状态保留和避免无限递归

每个对插件管理器的调用都与一个唯一标识 (UID) 相关联。

使用 UID,登录、检测无限递归以及 preExitpostExit 方法调用之间的状态保留都变得更容易,如下面的场景中所示。

图 1. 避免无限递归
避免无限递归

以下场景显示了发生无限递归的情况:

但是,在第一步中,插件管理器的 preExit 方法将一个 UID 插入了数据对象的 Context 对象。UID 的值是 List 对象,在第二次调用期间新的 UID 将附加到该对象。

订户有责任检查以避免无限递归,原因如下:

可以将相同 UID 用于各种订户调用之间的状态保留。如果订户调用新主题发射器,那么必须将该 UID 复制回新数据对象,以避免无限递归。通过状态保留,订户可以将 preExit 方法调用与 postExit 方法调用相关联。



使用条款 | 反馈