/**
* 抽象组
*/
public abstract class Group {
// 找到组
public abstract void find();
// 增加功能
public abstract void add();
// 删除功能
public abstract void delete();
// 给出变更计划
public abstract void plan();
}
/**
* 需求组
*/
public class RequirementGroup extends Group {
public void fin() {
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("客户要求需求变更计划");
}
}
public class PageGroup extends Group {
public void fin() {
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("客户要求页面变更计划");
}
}
public class CodeGroup extends Group {
public void fin() {
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("客户要求代码变更计划");
}
}
public class Client {
public static void main(String[] args) {
Group requirementGroup = new RequirementGroup();
requirementGroup.find();
requirementGroup.add();
requirementGroup.plan();
}
}
命令模式的定义:
Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations(将一个请求封装成一个对象, 从而让你使用不同的请求把客户端参数化, 对请
求排队或者记录请求日志, 可以提供命令的撤销和恢复功能).