命令模式

package CommandP;

public abstract class Group {
    public abstract void find ();
    public abstract void add ();
    public abstract void delete ();
    public abstract void change ();
    public abstract void plan ();
}
package CommandP;

public class CodeGroup extends Group {
    //客戶要求代碼組過去和他們談
    public void find() {
        System.out.println("找到代碼組...");
    }
    //客戶要求增加一項功能
    public void add() {
        System.out.println("客戶要求增加一項功能...");
    }
    //客戶要求修改一項功能
    public void change() {
        System.out.println("客戶要求修改一項功能...");
    }
    //客戶要求刪除一項功能
    public void delete() {
        System.out.println("客戶要求刪除一項功能...");
    }
    //客戶要求給出變更計劃
    public void plan() {
        System.out.println("客戶要求代碼變更計劃...");
    }
}
package CommandP;

public class PageGroup extends Group {
    //首先這個美工組應該能找到吧,要不你跟誰談?
    public void find() {
        System.out.println("找到美工組...");
    }
    //美工被要求增加一個頁面
    public void add() {
        System.out.println("客戶要求增加一個頁面...");
    }
    //客戶要求對現有界面做修改
    public void change() {
        System.out.println("客戶要求修改一個頁面...");
    }
    //甲方是老大,要求刪除一些頁面
    public void delete() {
        System.out.println("客戶要求刪除一個頁面...");
    }
    //所有的增、刪、改都要給出計劃
    public void plan() {
        System.out.println("客戶要求頁面變更計劃...");
    }
}
package CommandP;

public class RequireGroup extends Group {
    //客戶要求需求組過去和他們談
    public void find() {
        System.out.println("找到需求組...");
    }
    //客戶要求增加一項需求
    public void add() {
        System.out.println("客戶要求增加一項需求...");
    }
    //客戶要求修改一項需求
    public void change() {
        System.out.println("客戶要求修改一項需求...");
    }
    //客戶要求刪除一項需求
    public void delete() {
        System.out.println("客戶要求刪除一項需求...");
    }
    //客戶要求給出變更計劃
    public void plan() {
        System.out.println("客戶要求需求變更計劃...");
    }
}
package CommandP;

public class Client1 {
    public static void main(String[] args) {
        System.out.println("-----------客戶要求增加一項需求---------------");
        Group rg = new RequireGroup();
        rg.find();
        rg.add();
        rg.plan();

        Group pg = new PageGroup();
        pg.find();
        pg.add();
        pg.plan();
    }
}

 

package CommandP;

public abstract class Command {
    protected CodeGroup codeGroup = new CodeGroup();
    protected RequireGroup requireGroup = new RequireGroup();
    protected PageGroup pageGroup = new PageGroup();
    public abstract void execute();
}
package CommandP;

/**
 * 負責人
 */
public class Invoker {
    private Command command;
    public void setCommand(Command command){
        this.command = command;
    }
    public void action(){
        this.command.execute();
    }
}
package CommandP;

public class AddRequireCommand extends Command{
    public void execute(){
        super.requireGroup.find();
        super.requireGroup.add();
        super.requireGroup.plan();
    }
}
package CommandP;

public class Client {
    public static void main(String[] args) {
        Invoker invoker = new Invoker();
        Command command =new AddRequireCommand();
        invoker.setCommand(command);
        invoker.action();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章