您的位置首页百科问答

java策略模式应用场景为何?

java策略模式应用场景为何?

我认为策略模式是java众多模式中最常用,最常见的一种模式。一句话说,针对同一命令(或行为),不同的策略做不同的动作。 (个人总结棚散 难免疏漏 海涵)举例来说,一个接口有两个实现:interface RunBehavior { public void performRun();}class Run implements RunBehavior { public void performRun() { System.out.println(" I can run!"); }}class JumpAsRun implements RunBehavior { public void performRun() { System.out.println("I cannot run, but I can jump!"); }}解释一下这段简单的程序跑是一种行为(接口)正常的动物都可以跑(class Run)麻雀是不能跑的,它只能跳(class JumpAsRun)这样的话,其实我们有了一个行为的请求,那就是跑,然后我们有两个策略供选择。那么如何调用纳桐呢?class Anmial { RunBehavior runBehavior; public void run() { this.runBehavior.performRun(); } public void setRunBehavior(RunBehavior runBehavior) { this.runBehavior = runBehavior; }}下面真正开始调用:public class TestStrategy{ public static void main(String args[]) { RunBehavior rb1 = new Run(); Animal tiger = new Animal(); tiger.setRunBehavior(rb1); tiger.run(); RunBehavior rb2 = new JumpAsRun(); Animal bird = new Animal(); bird.setRunBehavior(rb2); bird.run(); // 上面的老虎和鸟分别用了一个策略,下面让老虎用鸟的策略 // 看看会发生什么 tiger.setRunBehavior(rb2); tiger.run(); // 其实策略模式的重点就在这儿,给对象传入什么样的策略,执行什么样的动作。 }}具体的还要你自己多思考了,推荐《Head First Desigh Pattern》全链茄氏手工敲入代码,估计你需要微调如果想运行的话