我认为策略模式是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》全链茄氏手工敲入代码,估计你需要微调如果想运行的话
相关文章
-
java安装速度很慢是为什么?
2023-10-14 18:08 阅读(601) -
为何提示QQ旋风2有木马?
2023-10-13 11:59 阅读(603) -
Java培训就业前景如何?
2023-09-30 21:19 阅读(647)
1 为何进不了QQ空间
650 阅读
2 为何有“中子辐射”而没有“质子辐射”?怎样理解?
636 阅读
3 场景英文
597 阅读
4 为何灌篮高手里面全场都是6人轮换?
630 阅读
5 javalibrary图书馆进不去
559 阅读