设计模型——策略模式

    技术2023-05-29  41

    场景引入

    个人感觉就和java中的多态性是差不多原理的,即:先定义一个接口,其中定义了一个抽象方法,比如两个数组的计算操作。然后用一些实现类去实现这个接口,实现其中具体的计算操作,比如有:加、减、乘、除。然后在使用时,我们只需要指定是哪一个具体的实现策略即可。

    结构图

    代码

    策略

    public interface strategy<T> { int operate(int o1,int o2); }

    策略实现

    public class Add implements strategy{ @Override public int operate(int o1, int o2) { return o1+o2; } } public class Divide implements strategy{ @Override public int operate(int o1, int o2) { return o1 / o2; } }

    测试对象

    public class TestObject { private strategy strategy; public TestObject(strategy strategy){ this.strategy = strategy; } public int executeStrategy(int num1, int num2){ return strategy.operate(num1, num2); } }

    测试结果

    public class Test { public static void main(String[] args) { TestObject context = new TestObject(new Add()); System.out.println("15 + 5 = " + context.executeStrategy(15, 5)); context = new TestObject(new Divide()); System.out.println("15 / 5 = " + context.executeStrategy(15, 5)); } }
    Processed: 0.010, SQL: 8