策略模式,其实就是封装变化,为了更加好理解,直接写一个简单案例来说明:
首先抽象一个打印的类,这个类里面有打印方法,就是简单的打印一句话
// 定义一个抽象打印的类
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