定義
當某些操作需要多個對象多個操作協作完成,可將這些動作整合到一個命令對象.
客戶端通過命令對象完成調用,從而屏蔽的對多個對象的調用.
實例
客戶需要增加某個需求,涉及到需求分析,頁面改動,代碼改動.客戶不可能和需求人員,美工人員,開發人員多方溝通,只需要發出一條增加需求的命令即可.
1.抽象命令類
public abstract class Command {
protected RequireGroup rg = new RequireGroup(); //需求組
protected PageGroup pg = new PageGroup(); //頁面組
protected CodeGroup cg = new CodeGroup(); //開發組
protected abstract void execute();
}
2.命令實現類
public class RequireAddCommand extends Command{
@Override
protected void execute() {
//利用命令實現類實現具體動作,此處可任意組合
super.rg.add(); //新增需求
super.pg.add(); //新增頁面
super.cg.add(); //新增代碼
}
}
3.各組實現類
public class RequireGroup {
public void add(){
System.out.println("新增需求!!!");
}
public void delete(){
System.out.println("刪除需求!!!");
}
}
public class PageGroup {
public void add(){
System.out.println("增加頁面!!!");
}
public void delete(){
System.out.println("刪除頁面!!!");
}
}
public class CodeGroup {
public void add(){
System.out.println("增加代碼!!!");
}
public void delelte(){
System.out.println("刪除代碼!!!");
}
}
4.命令接受者類
public class Invoker {
private Command command;
public Invoker(Command command){
this.command = command;
}
public void action(){
command.execute();
}
}
5.運行
public static void main(String[] args) {
Invoker invoker = new Invoker(new RequireAddCommand());
invoker.action();
}
結果:
新增需求!!!
增加頁面!!!
增加代碼!!!