WEB开发网
开发学院软件开发Java 演化架构与紧急设计: 对设计进行重构 阅读

演化架构与紧急设计: 对设计进行重构

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: sort() 方法使用 Collecions.sort() 方法,传递雇员列表和一个生成的 comparator,演化架构与紧急设计: 对设计进行重构(9),调用此类的第三个方法,getComparatorFor() 方法充当一个工厂,根据传入的条件动态生成匿名 comparator 类,它通过

sort() 方法使用 Collecions.sort() 方法,传递雇员列表和一个生成的 comparator,调用此类的第三个方法。getComparatorFor() 方法充当一个工厂,根据传入的条件动态生成匿名 comparator 类。它通过 getSelectionCriteriaMethod() 使用反射从 employee 类检索相应的 get 方法,对进行比较的每个实例调用该方法,并返回结果。清单 7 中的单元测试展示了这个类对两个字段的实际应用:


清单 7. 测试泛型 comparator
public class TestEmployeeSorter { 
  private EmployeeSorter _sorter; 
  private ArrayList<DryEmployee> _list; 
 
  @Before public void setup() { 
    _sorter = new EmployeeSorter(); 
    _list = new ArrayList<DryEmployee>(); 
    _list.add(new DryEmployee("Homer", 20000, 1975)); 
    _list.add(new DryEmployee("Smithers", 150000, 1980)); 
    _list.add(new DryEmployee("Lenny", 100000, 1982)); 
  } 
 
  @Test public void name_comparisons() { 
    _sorter.sort(_list, "name"); 
    assertThat(_list.get(0).getName(), is("Homer")); 
    assertThat(_list.get(1).getName(), is("Lenny")); 
    assertThat(_list.get(2).getName(), is("Smithers")); 
  } 
 
  @Test public void salary_comparisons() { 
    _sorter.sort(_list, "salary"); 
    assertThat(_list.get(0).getSalary(), is(20000)); 
    assertThat(_list.get(1).getSalary(), is(100000)); 
    assertThat(_list.get(2).getSalary(), is(150000)); 
  } 
} 

上一页  4 5 6 7 8 9 10  下一页

Tags:演化 架构 紧急

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接