策略模式(Strategy Pattern):
我的理解,将代码中每个变化之处抽出,提炼成一个一个的接口或者抽象类,让这些变化实现接口或继承抽象类成为具体的变化类。再利用多态的功能,可将变化之处用接口或抽象类的对象代替,再用其子类为对象赋值,这样就可以将对象随时更换成具体的变化类。
枯燥的文字描述总是没有实际的例子浅显易懂。
举例:(我是基于notepad++和cmd命令编译运行的JAVA代码)
现在有个鸭子俱乐部,里面有各式各样的鸭子(只有想不到,没有做不到的鸭子)。
我们来一步一步实现这个鸭子类:
1.定义一个抽象鸭子类(Duck):
1 public abstract class Duck{//抽象鸭子类 2 public void fly(){//行为:飞行 3 System.out.println("I'm flying!"); 4 } 5 public void quack(){//行为:呱呱叫 6 System.out.println("Gua Gua!"); 7 } 8 public void swim(){//行为:游泳 9 System.out.println("I'm swimming!"); 10 } 11 }