public class StrategyPatternDemo {
public static void main(String[] args) {
Context context = new Context(new OperationAdd());
System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
context = new Context(new OperationSubstract());
System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
context = new Context(new OperationMultiply());
System.out.println("10 * 5 = " + context.executeStrategy(10, 5));
}
}
请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。解释器设计模式
public intece Command {
void execute();
}public class AddCommand implements Command {
private Document document;
public AddCommand(Document document) {
this.document = document;
}
@Override
public void execute() {
this.document.add();
}
}public class RedoCommand implements Command {
private Document document;
public RedoCommand(Document document) {
this.document = document;
}
@Override
public void execute() {
this.document.redo();
}
}public class UndoCommand implements Command {
private Document document;
public UndoCommand(Document document) {
this.document = document;
}
@Override
public void execute() {
this.document.undo();
}
}public class Document {
public static StringBuffer sbr = new StringBuffer();
/**
* 计数器
*/
public static int count = 0;
/**
* 撤销实现方法
*/
public void undo() {
System.out.println("调用撤销实现方法,字符串递减");
sbr.deleteCharAt(sbr.length() - 1);
count--;
System.out.println("当前文本为:" + sbr.toString());
}
/**
* 恢复实现方法
*/
public void redo() {
System.out.println("调用恢复实现方法,字符串递加");
this.sbr.append(count);
count++;
System.out.println("当前文本为:" + sbr.toString());
}
/**
* 执行实现方法
*/
public void add() {
System.out.println("调用执行实现方法,字符串递加");
this.sbr.append(count);
count++;
System.out.println("当前文本为:" + sbr.toString());
}
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33899-13.html
那苏联人死两千万人
那个白色的靴子是什么鬼