https://mp.weixin.qq.com/s/BvK3He3GWon8ywG8Jdmcsg
介绍Node相关的类。
1. BaseNode
BaseNode是所有节点类的基类。
2. InwardNode
内向节点(下游节点),其定义如下:
a. iBindings: 记录内向连接的信息。每一条内向连接的信息包括:对端节点(OutwardNode),绑定类型。
b. iStar:内向连接中星号的个数;
c. diParams:所有内向连接的DI参数;
d. uiParams:所有内向连接的UI参数;
3. OutwardNode
外向节点(上游节点),定义如下:
a. oBindings: 记录内向连接的信息。每一条内向连接的信息包括:对端节点(InwardNode),绑定类型。
b. oStar:内向连接中星号的个数;
c. doParams:所有内向连接的DO参数;
d. uoParams:所有内向连接的UO参数;
4. MixedNode
同时可以作为内向节点(InwardNode)和外向节点(OutwardNode)。
5. CustomNode
自定义节点。
MixedCustomNode定义如下:
CustomNode的定义如下:
6. AdapterNode
适配器节点。
Mixed和不带Mixed的定义如下:
7. IdentityNode
8. NexusNode
9. 带Mixed的类
可以看到带Mixed的类的定义,都是DI/DO类型分开的类。不带Mixed的类,都是DI和DO合并成为D的类。
也就是说带Mixed的类,是按照DUEB完整模型定义的类。而不带Mixed的类是按照DUEB化简模型定义的类。
10. SourceNode
上游节点:
作为上游节点使用,只有输出,没有输入:
a. mapParamsD:直接返回po;因为没有输入,参数p为空;
b. mapParamsU:返回空序列;因为没有输入,参数n=0;
11. SinkNode
作为下游节点使用,只有输入,没有输出:
a. mapParamsD:返回空序列,因为没有输出,参数n = 0;
b. mapParamsU:直接返回pi;因为没有输出,参数p为空;
12. 继承MixedNode
基本上所有的类都继承自MixedNode,却并不是所有节点都作为复合节点使用。应该是为了实现简单,因为MixedNode中基本上实现了所有参数传播的功能。