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