策略模式

结构图

image

Srategy

abstract class Strategy {

    public abstract void AlgorithmInterface();
}

ConcreteStrategyA

public class ConcreteStrategyA extends Strategy{
    @Override
    public void AlgorithmInterface() {
        System.out.println("算法A实现");
    }
}

ConcreteStrategyB

public class ConcreteStrategyB extends Strategy {
    @Override
    public void AlgorithmInterface() {
        System.out.println("算法B实现");
    }
}

ConcreteStrategyC

public class ConcreteStrategyC extends Strategy {
    @Override
    public void AlgorithmInterface() {
        System.out.println("算法C实现");
    }
}

Context

public class Context {

    Strategy strategy = null;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public void contextInterface() {
        strategy.AlgorithmInterface();
    }
}

Main

public class Main {

    public static void main(String[] args) {

        Context context;

        context = new Context(new ConcreteStrategyA());
        context.contextInterface();

        context = new Context(new ConcreteStrategyB());
        context.contextInterface();

        context = new Context(new ConcreteStrategyC());
        context.contextInterface();
    }
}
posted @ 2022-10-03 11:22  jarico  阅读(24)  评论(0)    收藏  举报