Background
为了维护状态,触发器使用TriggerContext
,而窗口函数使用Context
。尽管逻辑上相似,但TriggerContext
和Context
似乎并不共享相同的代码(无论是通过继承还是使用(。
问题
为什么TriggerContext
和Context
不共享相同的代码并且具有不同的使用模式?
这两个类只是冰山一角;Flink 的 API 经常使用这种 Context 对象模式。这里的目标是为用户提供定义的函数所需的信息,同时避免组件之间任何不必要的耦合。