谁能帮小弟通俗易懂的解释下策略模式啊..看java编程思想有点看不明白这个东东啊

解决方案 »

  1.   

    说个最简单的问题,文件排序,比如,你写了一个方法来实现排序,但文件排序有的人想换文件名排序,有的想换类型排,有的人想按大小排,有的人想换修改日期排,如果用if else 就不太好,这时可以用策略模式,把排序方法定义在接口中(具体策略),你的排序方法调用接口的方法,实现不同的排序方式。如果又增加了一种排序方式。你的代码不用更改,只要写一个具体策略实现那个接口就行了。 
      

  2.   

    《head first设计模式》第一章介绍的相当通俗易懂
      

  3.   

    encapsulate what varies 封装变化在这个问题场景中,策略就是唯一变化的,然后运用一定的手段,使能灵活使用,变换包括维护策略。
    具体的手段就是组合某个策略对象,策略对象可以动态替换,策略对象的使用是面向接口的(保证了以一种统一的模式来使用)