Command

What?

How?

Why?

Code

class Bulb {
    turnOn() {
        console.log('Bulb has been lit')
    }
    
    turnOff() {
        console.log('Darkness!')
    }
}

class TurnOnCommand {
    constructor(bulb) {
        this.bulb = bulb
    }
    
    execute() {
        this.bulb.turnOn()
    }
    
    undo() {
        this.bulb.turnOff()
    }
    
    redo() {
        this.execute()
    }
}

class TurnOffCommand {
    constructor(bulb) {
        this.bulb = bulb
    }
    
    execute() {
        this.bulb.turnOff()
    }
    
    undo() {
        this.bulb.turnOn()
    }
    
    redo() {
        this.execute()
    }
}

class RemoteControl {
    submit(command) {
        command.execute()
    }
}

const bulb = new Bulb()

const turnOn = new TurnOnCommand(bulb)
const turnOff = new TurnOffCommand(bulb)

const remote = new RemoteControl()
remote.submit(turnOn) // Bulb has been lit!
remote.submit(turnOff) // Darkness!
var Calculator={

add: function(num1,num2) {
return num1+num2;
},

substract: function(num1, num2) {
return num1-num2;
},

multiply: function(num1, num2) {
return num1*num2;
},

divide: function(num1, num2) {
return num1/num2;
},
};

Calculator.calc=function(command)  {
return Calculator[command.type](command.num1,command.num2);
};
var InventoryManager = {

getInfo: function(item, item_id){
return "Item is : " +item+ " with item id: " +item_id;
},

acquireItem: function(item, item_id){
return "Item purchased";
},

sortItems: function(item, item_id){
return "You have sorted the items";
}
}

InventoryManager.execute = function(name){
return InventoryManager[name] && InventoryManager[name].apply( CarManager, [].slice.call(arguments, 1) );
};
console.log(InventoryManager.execute("Powder", "1123"));

Thx

Command

By just Just

Command

  • 32