关于一个简单的策略设计模式的例子
项目中正好用到了,然后一想,这不就是策略设计模式。详情看代码。
我的需求是将一个list进行排序,可以是升序也可以是降序看你的需求了。
1.我先建立一个实体类,里面有我想排序的关键字段。比如是这个ApinLog实体类,
public class ApinLog {
private String id;//id
private Integer identity;//身份 0:用户1:供应商2:aipinji员工
private String phone;//手机号
private Integer operation_type;//操作类型
private String operation_type_description;//操作类型文字描述
private String route_no;//行程号
private String operation_content;//操作内容
private Date create_time;//创建时间
private String merchant_route_no;//供应商行程号
private Integer is_merchant;//是否是供应商日志 0:旅行社日志1:供应商日志 2:CRM日志
此处省略相关set、get方法等
}
2.创建一个比较器(进行排序用到的),我是用的是java自带的排序方法,实现Comparator接口,重写compare方法,泛型是我需要排序的实体类ApinLog
/**
* @author wch
* 比较器
*/
public class DescClass implements Comparator<ApinLog>{
@Override
public int compare(ApinLog o1, ApinLog o2) {
return o2.getCreate_time().getTime()-o1.getCreate_time().getTime()>0?1:-1; //三元表达式判断(因为private Date create_time;//创建时间) 这里我是进行降序的
}
}
3.DescClass desc=new ReverseClass();
Collections.sort(LogList1,desc);//LogList1是我需要进行排序的list,desc是比较器创建的对象。
到这里之后就已经排好了,我们可以输出一下
for(int i=0;i<LogList1.size();i++){
System.out.println(LogList1.get(i).getCreate_time());
}
结果是降序排列的。
这就是在我的项目中世纪用到的一个小小的排序,就是使用到了一个策略设计模式。