DCI中角色注入的问题
|
这里intelligentRobot 对象是怎么混合着robot数据又具有听、看、感觉的行为?
|
应该是智能机器人的构造函数能够接受机器人这个参数。 智能机器人是自己去实现这些行为,然后将状态保存在机器人而已。机器人打架之前有10升油,然后派一个智能机器人去打架用掉自己6升油,打完架之后还剩4升油。
好吧,我把代码贴全一些。banq老板呢?
|
基本如gameboyLV所说,这里将机器人和智能机器人分开,机器人没有能力行为,而智能机器人有能力行为,可以听说感觉等。智能机器人可以看成机器人在一定场合下需要扮演的角色。比如在排爆场景下,需要机器人有能力行为,这时我们就将智能机器人的行为注入到机器人中,让其具有智能机器人的行为,也就是扮演了智能机器人的角色。
DCI在Java中实现并不太优雅,在Ruby或Scala中比较方便,但是因为灵活性太强,导致代码难以理解,我们很多时候是根据代码运行的情况倒推其代码,但是因为运行的代码混合了很多其他代码,导致靠倒推理解其原始代码难度增加。