1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| interface Strategy { int doOperation(int num1, int num2); }
class OperationAdd implements Strategy { @Override public int doOperation(int num1, int num2) { return num1 + num2; } }
class OperationSubtract implements Strategy { @Override public int doOperation(int num1, int num2) { return num1 - num2; } }
class OperationMultiply implements Strategy { @Override public int doOperation(int num1, int num2) { return num1 * num2; } }
class Context { Strategy strategy;
public Context(Strategy strategy) { this.strategy = strategy; }
public int executeStrategy(int num1, int num2) { return strategy.doOperation(num1, num2); } }
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 OperationSubtract()); System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
context = new Context(new OperationMultiply()); System.out.println("10 * 5 = " + context.executeStrategy(10, 5)); } }
|