DCI 设计实例

来源:互联网 发布:飞客数据 编辑:程序博客网 时间:2024/05/17 23:00

大家,这两天看了与DCI相关的文章,写了这么个测试程序,请指正。

//pptfunction Player(name) {this.name = name;}Player.prototype.sayHello = function() {return '大家好,我是' + this.name;}//rolefunction Fighter(player) {for (var i in player) {this[i] = player[i];}}Fighter.prototype.attack = function(fighter) {console.log(this.name + ' 攻击了 ' + fighter.name);return this.name + ' 胜利了';}//mifunction FightingContext(fighters) {this.attacker = arguments[0];this.defender = arguments[1];console.log(this.attacker.sayHello());console.log(this.defender.sayHello());}FightingContext.prototype.interation = function(callback) {console.log(this.attacker.name + ' 加入了战斗');console.log(this.defender.name + ' 加入了战斗');var res = this.attacker.attack(this.defender);callback(res);};//fightingvar p1 = new Player('first player');var p2 = new Player('second player');var cxt = new FightingContext(new Fighter(p1), new Fighter(p2));cxt.interation(function(res) { console.log('战斗结果:' + res); });


在node.js下运行输出结果:

大家好,我是first player
大家好,我是second player 
first player 加入了战斗
second player 加入了战斗
first player 攻击了 second player
战斗结果:first player 胜利了