在每一个木偶的头顶上,那些丝线汇集的地方,都绑着一个很小,很不起眼的……木牌。
木牌很小,不仔细看,根本发现不了。
士兵木偶的木牌上,用稚嫩的笔迹,刻着两个字:【士兵】。
下面,还有几行更小的字:
【移动:线1】
【攻击:线2】
【防御:线3】
农夫木偶的木牌上,刻着:【农夫】。
【移动:线1】
【耕作:线4】
【躲闪:线5】
书生木偶的木牌上,刻着:【书生】。
【移动:线1】
【念诗:线6】
【作揖:线7】
……
每一个木偶,都有一个属于自己的“木牌”。
这个木牌,清晰地定义了它的“身份”,以及它的每一个“行为”,分别对应着哪一根“丝线”!
“轰——!!!!!”
李兴华的脑海里,仿佛有亿万道惊雷,同时炸响!
他瞬间明白了!
一切,都明白了!
王小虎,那个“超级建筑工”,他根本不需要用脑子去记任何东西!
当他收到“让士兵攻击”的指令时,他需要做的,只有两步!
第一步:找到那个挂着【士兵】木牌的木偶。
第二步:根据木牌上的“说明书”,找到【攻击】行为对应的那根丝线——【线2】,然后,拉动它!
就这么简单!
没有复杂的逻辑判断!
没有庞大的“if-else”!
只有一个简单的,机械的,甚至可以说是“愚蠢”的……
“查表”操作!
那个“木牌”,是什么?
它不就是……黄老和钱老他们,在黑板上推演了无数遍,却始终觉得无法实现的……
那个连接“对象”和“方法”的终极桥梁……
那个他们称之为“灵魂”,称之为“上帝”的东西……
那个在“龙语”的编译和运行中,最最核心,也最最缺失的一环——
【虚函数表】(Virtual Method Table)!
它不是凭空产生的!
它不是在“运行时”动态生成的!
它是在“编译时”,当“士兵”这个“类”被定义的时候,就已经被“编译器”创建出来,和“士兵”这个“对象”