构建关系树,应该是静态的,固定的。 这是设计层面的事情,不应该出现动态修改关系树的行为。 动态创建单独的无Link的节点,是被允许的。public接口都是CreateorLoad
例命名规则:node_l_序号
某个节点被设置数值时序: node_l3_1通知回调 node_l2_1计算node_l3_1和node_l3_2累加 node_l2_1通知回调 node_l1_2计算node_l2_1和node_l2_2累加 node_l1_2通知回调 node_r1计算node_l1_1和node_l1_2累加 node_r1通知回调 node_r2计算node_l1_3和node_l1_2累加 node_r2通知回调
支持x型树。例如中心节点node_l1_ 因为最外层展示可能会有多个模块需求,比如道具修改对应红点是在活动,任务,背包多个Root节点
只有叶子节点可以被设置具体数值,向上的树全部进行计算
程序学无止尽。欢迎大家沟通,有啥不明确的,或者不对的,也可以和我私聊我的QQ334524067神一般的狄狄
不支持菱形结构。例如在中node_l3_2同时指向node_l2_ 这个需求可能是合理的,但是实际应用场景非常少 菱形结构在递归中,可能会由于人为原因导致死循环,排查bug困难或者导致逻辑复杂度高 可以新增一个节点,同时增加计数来解决菱形结构的问题
监听变化:AddListener和RemoveListener需要按照生命周期成对出现,有Add必有Remove
local pCallBack = Bind(self, self.FunctionCallBack) // 注:Lua里需要Bind
function xxx:FunctionCallBack()
...
end
self:AddListener(RedDotKey.Activity, pCallBack)
self:RemoveListener(RedDotKey.Activity, pCallBack) // 注:lua内部实现C# delegate使用的是table<function>遍历对比
中node_l3_1,node_l3_2,node_l2_2,node_l1_1,node_l1_3可以被设置数值
文章为作者独立观点,不代表股票交易接口观点