策略模式,其实就是封装变化,为了更加好理解,直接写一个简单案例来说明:

首先抽象一个打印的类,这个类里面有打印方法,就是简单的打印一句话

// 定义一个抽象打印的类
public abstract class Print {
    // 定义打印一句话的方法
    public abstract void printMethod();
}

// 写一个子类A,继承父类 Print
public class PrintA extends Print{
    public void printMethod() {
        System.out.println("PrintA printMethod AAA...");
    }
}

// 写一个子类B继承父类 Print
public class PrintB extends Print{
    public void printMethod() {
        System.out.println("PrintB printMethod BBB...");
    }
}

// 写一个子类C继承父类 Print
public class PrintC extends Print{
    public void printMethod() {
        System.out.println("PrintC printMethod CCC...");
    }
}

// 此类用于控制对象
public class Context {

    private Print print;

    public Context(Print print) {
        this.print = print;
    }

    public void contextMethod() {
        print.printMethod();
    }
}

// 客户端程序调用
public class Main {

    public static void main(String[] args) {

        Context context;

        // 想使用哪个策略,就使用哪个策略,客户端值需指定一个类Context就够了,封装了变化

        context = new Context(new PrintA());
        context.contextMethod();

        context = new Context(new PrintB());
        context.contextMethod();

        context = new Context(new PrintC());
        context.contextMethod();
    }

}

执行结果:
这里写图片描述

谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006