[Java策略模式(Strategy模式) 之体验]
public class Client {
public static void main(String[] args) {
Context context = new Context(new ConcreteStrategy1());
context.algorithm();
context = new Context(new ConcreteStrategy2(),100, 200);
context.algorithm();
context = new Context(new ConcreteStrategy3(), 100, 200);
context.algorithm();
}
}
测试输出结果如下: ------------这是第1次调用algorithm算法-------- ----------------我是策略一算法---------------- ------------这是第2次调用algorithm算法-------- ----------------我是策略二算法---------------- ------------------我需要的参数parameter1=100 ------------------我需要的参数parameter2=200 ------------这是第3次调用algorithm算法-------- ----------------我是策略三算法---------------- ------------------我需要的参数parameter1=100 ------------------我需要的参数parameter2=200 由以上分析可见,策略模式中,各个角色的功能都非常重要,虽然环境角色Context可以在某些简单的策略模式中不去使用,但是如果无法预测到各个实现策略功能和需求的变化,以及实现灵活性更好的策略模式,在使用策略模式进行架构时,一定要充分利用所有角色的功能。
网友评论