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(); } }