Código Strategy
	interface Strategy {
		int execute(int a, int b); 
	}
	 
	// Implementamos los algoritmos de las operaciones usando la interfaz Strategy
	class ConcreteStrategy1 implements Strategy {
	
		public int execute(int a, int b) {
			int operation1;
			System.out.println("...");
			return operation1;
		}
	}
	 
	 
	class ConcreteStrategy2 implements Strategy {
	 
		public int execute(int a, int b) {
			int operation2;
			return operation2;
		}
	}
	 

	 
	// Configured with a ConcreteStrategy object and maintains a reference to a Strategy object
	class ContextClass {
	 
		private Strategy strategy;
	 
		public ContextClass(Strategy strategy) {
			this.strategy = strategy;
		}
	 
		public int executeStrategy(int a, int b) {
			return strategy.execute(a, b);
		}
	}
	 
	// Test application
	class StrategyExample {
	 
		public static void main(String[] args) {
	 
			Context context;
	 
			context = new ContextClass(new ConcreteStrategy1());
			int result1 = context.executeStrategy(3,4);
	 
			context = new ContextClass(new ConcreteStrategy2());
			int result2 = context.executeStrategy(3,4);
		}
	}