Here is sample code to understand command pattern
Hierarchy is as follows:
Equipments: Laptop, Mobile Phone, TabletPC
Action: TurnOn, TurnOff
Equipment.java
package com.manan.testlab;
public interface Equipment {
public boolean turnOn();
public boolean turnOff();
}
Laptop.java
package com.manan.testlab;
public class Laptop implements Equipment {
@Override
public boolean turnOn() {
System.out.println("Turn On Laptop..");
return true;
}
@Override
public boolean turnOff() {
System.out.println("Turn Off Laptop..");
return true;
}
}
MobilePhone.java
package com.manan.testlab;
public class MobilePhone implements Equipment {
@Override
public boolean turnOn() {
System.out.println("Turn On Mobile..");
return true;
}
@Override
public boolean turnOff() {
System.out.println("Turn Off Mobile..");
return true;
}
}
TabletPC.java
package com.manan.testlab;
public class TabletPC implements Equipment {
@Override
public boolean turnOn() {
System.out.println("Turn On TabletPC..");
return true;
}
@Override
public boolean turnOff() {
System.out.println("Turn Off TabletPC..");
return true;
}
}
Command.java
package com.manan.testlab;
public interface Command {
public void execute();
public void setEquipment(Equipment pEquip); //optional
}
SwitchOn.java
package com.manan.testlab;
public class SwitchOn implements Command {
Equipment e;
public SwitchOn(){
}
public SwitchOn(Equipment pEquip){
this.e = pEquip;
}
public void setEquipment(Equipment pEquip){
this.e = pEquip;
}
@Override
public void execute() {
e.turnOn();
}
}
Turn On Laptop..
Turn On Mobile..
Turn On TabletPC..
Turn Off Laptop..
Turn Off Mobile..
Turn Off TabletPC..
Hierarchy is as follows:
Equipments: Laptop, Mobile Phone, TabletPC
Action: TurnOn, TurnOff
Equipment.java
package com.manan.testlab;
public interface Equipment {
public boolean turnOn();
public boolean turnOff();
}
Laptop.java
package com.manan.testlab;
public class Laptop implements Equipment {
@Override
public boolean turnOn() {
System.out.println("Turn On Laptop..");
return true;
}
@Override
public boolean turnOff() {
System.out.println("Turn Off Laptop..");
return true;
}
}
MobilePhone.java
package com.manan.testlab;
public class MobilePhone implements Equipment {
@Override
public boolean turnOn() {
System.out.println("Turn On Mobile..");
return true;
}
@Override
public boolean turnOff() {
System.out.println("Turn Off Mobile..");
return true;
}
}
TabletPC.java
package com.manan.testlab;
public class TabletPC implements Equipment {
@Override
public boolean turnOn() {
System.out.println("Turn On TabletPC..");
return true;
}
@Override
public boolean turnOff() {
System.out.println("Turn Off TabletPC..");
return true;
}
}
Command.java
package com.manan.testlab;
public interface Command {
public void execute();
public void setEquipment(Equipment pEquip); //optional
}
SwitchOn.java
package com.manan.testlab;
public class SwitchOn implements Command {
Equipment e;
public SwitchOn(){
}
public SwitchOn(Equipment pEquip){
this.e = pEquip;
}
public void setEquipment(Equipment pEquip){
this.e = pEquip;
}
@Override
public void execute() {
e.turnOn();
}
}
SwitchOff.java
package com.manan.testlab;
public class SwitchOff implements Command {
Equipment e;
public SwitchOff(){
}
public SwitchOff(Equipment pEquip){
this.e = pEquip;
}
public void setEquipment(Equipment pEquip){
this.e = pEquip;
}
@Override
public void execute() {
e.turnOff();
}
}
CommandTest.java
package com.manan.testlab;
public class CommandTest {
public static void main(String args[]){
Equipment laptop = new Laptop();
Equipment mob = new MobilePhone();
Equipment tab = new TabletPC();
Command on = new SwitchOn();
on.setEquipment(laptop);
on.execute();
on.setEquipment(mob);
on.execute();
on.setEquipment(tab);
on.execute();
Command off = new SwitchOff();
off.setEquipment(laptop);
off.execute();
off.setEquipment(mob);
off.execute();
off.setEquipment(tab);
off.execute();
}
}
Output:
Turn On Mobile..
Turn On TabletPC..
Turn Off Laptop..
Turn Off Mobile..
Turn Off TabletPC..
No comments:
Post a Comment