java编程思想第四版第九章总结

1. 策略设计模式

参考这篇文章: 讲的很清楚,策略设计模式。并且举了一个例子,很具有代表性。

先简单了解一下:

  

java编程思想第四版第九章总结

    

java编程思想第四版第九章总结

    和模板方法模式的区别:

    

java编程思想第四版第九章总结

    文章里还有一个例子:

     

java编程思想第四版第九章总结

    

  

java编程思想第四版第九章总结

    备注:我来分解,解释一下这个例子。

    将共同的方法定义成了一个接口,在这个接口中并没有这个共同方法的实现。

    在Strategy类中,定义了一个方法execute,它的参数是拥有共同方法的接口类。

    用户Context在调用Strategy的execute方法时,在定义这个共同的方法。 这样就大大提高了灵活性。因为公共方法也是可以后定义的。而不是在创建类的时候就定义好了。

    下面把这个例子敲成代码

package net.mindview.interfaces; //公共方法回调类 interface SameCallback{ void doTheSame(); } //定义了一个策略类 interface Strategy { void execute(SameCallback sc); } //定义策略实现类 class concreteStrategy1 implements Strategy { @Override public void execute(SameCallback sc) { sc.doTheSame(); } } class concreteStrategy2 implements Strategy { @Override public void execute(SameCallback sc) { sc.doTheSame(); } } class concreteStrategy3 implements Strategy { @Override public void execute(SameCallback sc) { sc.doTheSame(); } } public class Context { public static void main(String[] args) { Strategy strategy = new concreteStrategy1(); //这个公共方法类 SameCallback sc = new SameCallback() { @Override public void doTheSame() { System.out.println("do same things"); } }; //那个策略需要用到公共方法类,调用即可,如果不用, 那就不在方法中小勇 strategy.execute(sc); strategy = new concreteStrategy2(); strategy.execute(sc); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdwdw.html