策略模式
描述
策略模式中,一个策略类的行为或方法,可以在运行时更改。
解释一下:假设我们有一个游戏策略生成器,输入不同情况,就会产生不同对应策略出来,这就是策略模式。即我们只需要建立一个策略器,就能在不同状况下得到不同策略。
实例
interface MathAlgorithm { public int calculate(int num1, int num2); } class MathAdd implements MathAlgorithm{ @Override public int calculate(int num1, int num2) { return num1 + num2; } } class MathSubstract implements MathAlgorithm{ @Override public int calculate(int num1, int num2) { return num1 - num2; } } class MathMultiply implements MathAlgorithm{ @Override public int calculate(int num1, int num2) { return num1 * num2; } } //相当于一个策略生成器 class MathContext { private MathAlgorithm algorithm; public MathContext(MathAlgorithm strategy){ this.algorithm = strategy; } public int execute(int num1, int num2){ return algorithm.calculate(num1, num2); } } public class Main { public static void main(String[] args) { MathContext context = new MathContext(new MathAdd()); System.out.println("10 + 5 = " + context.execute(10, 5)); context = new MathContext(new MathSubstract()); System.out.println("10 - 5 = " + context.execute(10, 5)); context = new MathContext(new MathMultiply()); System.out.println("10 * 5 = " + context.execute(10, 5)); } }
代码来源:特别感谢 w3school java设计模式之策略模式