命令模式
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(); } }