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

本文介绍了如何使用JAVA的策略模式实现排序策略。通过创建实现Comparator接口的Mycomparator类,可以在不修改Person对象的前提下,根据年龄进行升序或降序排序。这种设计允许算法独立于使用它的环境变化,体现了策略模式的应用。
摘要由CSDN通过智能技术生成

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

 

Person.java类:

 

 

Mycomparator.java类

 

ArrayListSort.java测试类

 

运行结果:

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值