代码之美1:使用策略模式来编写solr 排序方法

时间:2021-08-14 21:59:54

背景:

   

jsp中有排序方式几个方式选择(select下拉框方式),value 传入到controller-->manager 基于这个value 构造排序方法

   

原代码: if else if 判断方式

   

代码之美1:使用策略模式来编写solr 排序方法

   

   

优点:

代码简单易懂

   

缺点:

新增排序方式的时候,需要增加常量和判断

   

   

   

使用策略模式 :

   

代码之美1:使用策略模式来编写solr 排序方法

   

缺点:

增加了代码的理解度,enum(jdk1.4特性)相关知识才能明白

   

优点:

体现了oop的思想,层次更加清晰

扩展方便,

   

   

总结:

1.上面只是代表着一种思路,不要一味的认为非得用enum来替代if elseif,有时反而增加复杂度

2.策略模式使用场景

   

  • 以不同的格式保存文件;
  • 以不同的算法压缩文件;
  • 以不同的算法截获图象;
  • 以不同的格式输出同样数据的图形,比如曲线 或框图bar