package ParttenDesign;
//将军的命令接口
public interface Command {
void defend();
void attack();
}
将军想士兵发出的指令动作
package ParttenDesign;
public class Commander implements Command {
Command command;
public Commander(Command command){
this.command=command;
}
@Override
public void attack() {
System.out.println("司令发出攻击命令");
command.attack();
}
@Override
public void defend() {
System.out.println("司令发出防守命令");
command.defend();
}
}
士兵接受到将军发出指令后的相应操作
package ParttenDesign;
public class Privates implements Command {
@Override
public void attack() {
System.out.println("士兵接受到攻击命令,发出攻击");
System.out.println("---------------------------------------");
System.out.println("");
}
@Override
public void defend() {
System.out.println("士兵接受到防守命令,撤退防守");
System.out.println("---------------------------------------");
System.out.println("");
}
}
测试代码:
package ParttenDesign;
public class MyMain {
/**
* 命令模式:
* (动作发出者)司令通过(动作的传递着)电话发出(防守,攻击)(指令)命令,(动作接受者)士兵接受命令后作出相应的具体动作
* @param args
*/
public static void main(String[] args) {
Command privates=new Privates();
Command commander=new Commander(privates);
commander.attack();
commander.defend();
}
}