class Context {
Strategy strategy;
public Context(Strategy strategy){
this.strategy=strategy;
}
public Object doExecute(){
return strategy.execute(new SameCallBack() {//SameCallBack接口的匿名实现类
@Override
public Object doTheSame() {
System.out.println("相同部分");
return null;
}
});
}
}
interface Strategy{
public Object execute(SameCallBack callback);
}
interface SameCallBack{
public Object doTheSame();
}
class ConcreteStrategy1 implements Strategy{
@Override
public Object execute(SameCallBack callback) {
callback.doTheSame();
System.out.println("我是一号");
return null;
}
}
class ConcreteStrategy2 implements Strategy{
@Override
public Object execute(SameCallBack callback) {
callback.doTheSame();
System.out.println("我是二号");
return null;
}
}
public class ContextTest{
@Test
public void doTest(){
new Context(new ConcreteStrategy1()).doExecute();
new Context(new ConcreteStrategy2()).doExecute();
}
}
Strategy模式:http://blog.csdn.net/chenjie19891104/article/details/6396458