码迷,mamicode.com
首页 > 其他好文 > 详细

策略模式

时间:2019-03-15 09:15:08      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:java   new   并且   eset   如何   nbsp   影响   客户   例子   

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

 

举个例子:

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

 

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

策略模式

标签:java   new   并且   eset   如何   nbsp   影响   客户   例子   

原文地址:https://www.cnblogs.com/xiaobo520/p/10534652.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!