01 说明
定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。
02 UML图

03 代码实现
public abstract class AbstractOperation {
public abstract int calculate(int m, int n);
}
public class AddOperation extends AbstractOperation {
@Override
public int calculate(int m, int n) {
return m + n;
}
}
public class SubOperation extends AbstractOperation {
@Override
public int calculate(int m, int n) {
return m - n;
}
}
public class OperationContext {
private AbstractOperation operation;
public OperationContext(AbstractOperation operation) {
this.operation = operation;
}
public int getResult(int m, int n) {
return operation.calculate(m, n);
}
}
public class MainTest {
public static void main(String[] args) {
OperationContext context = new OperationContext(new AddOperation());
int result = context.getResult(1, 2);
System.out.println(result);
context = new OperationContext(new SubOperation());
result = context.getResult(1, 2);
System.out.println(result);
}
}
执行结果:


被折叠的 条评论
为什么被折叠?



