JAVA与设计模式--之STRATEGY策略模式

来源:互联网 发布:淘宝卖家如何设置套餐 编辑:程序博客网 时间:2024/04/30 17:59

     策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。
策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持
和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响
到环境和客户端。
    其实在我们做对象排序时,就会用到这一策略模式。比如,需要对ArrayList中的Person对象按照年龄排序,
而Person对象本身就没有支持自比较(也就是没有而没有实现Comparable接口),在不修改Person的前提下,
可以通过Comparator接口来实现比较算法进行排序。Mycomparator就是实现了Comparator接口的类,我们的
排序算法都封装在这个类里面,在这个类里可以实现不同的排序算法,比如:升序、降序等。这个时候我们的算法
(Mycomparator)和数据(Person)都分离开来。

 

Person.java类:

 

 

Mycomparator.java类

 

ArrayListSort.java测试类

 

运行结果:

Lily:24
Lucy:25
韩梅梅:26
李雷:27
吉姆:28

 

原创粉丝点击