2.實現
1)定義一個接口(interface)
2)每一個子類實現一個版本。
PS:加入每一個版本都有一些相同的部分,那麼可以使用回調函數的方法來做這些相同的部分。
Example Code:
打印服務,打印接口類PrintInterface提供PrintA,PrintB兩種打印服務,上下文類是PrintContext,用戶可以通過它調用打印服務,具體的代碼清單如下:
public class PrintContext {
private PrintInterface printInterface;
public PrintContext(PrintInterface pi){
this.printInterface = pi;
}
public void run(){
this.printInterface.print();
}
public void changeStrategy(PrintInterface pi){
printInterface = pi;
}
}
public interface PrintInterface {
abstract public void print();
}
public class PrintA implements PrintInterface{
@Override
public void print() {
System.out.println("this is printA");
}
}
public class PrintB implements PrintInterface{
@Override
public void print() {
System.out.println("this is printB");
}
}
public class maintest {
public static void main(String[] args) {
PrintContext pcContext = new PrintContext(new PrintA());
pcContext.run();
pcContext.changeStrategy(new PrintB());
pcContext.run();
}
}