策略模式

时间:2019-03-15
本文章向大家介绍策略模式,主要包括策略模式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

策略模式其思想就是把一系列的算法封装到具有相同接口的独立的类中,从而使他们可以相互替换。而其最大的特点是使得算法可以在不影响客户端的情况下发生改变,从而 实现不同的功能。

举个例子:

Java的工具类TreeSet,这个类实现了一个Comparator接口(这个接口里面是个空壳,只是一个形式而已),其TreeSet本身并没有实现这个接口,需要外部的实现类去实现它再传入TreeSet,例如:Set<Integer> set=new TreeSet<>();里面的Integer就是具体实现了Comparator接口,并且定义了如何排序,因此TreeSet里面的Integer对象才能进行排序。所以我们可以自己去实现Comparator接口,然后在实现类里面封装自己的规则(这个可以当做是算法),最后把这个实现类传入TreeSet里面去就行了。

事实上,没有把具体的实现类传入TreeSet时,TreeSet本身是不知道的,只有运行的时候才知道具体的实现规则