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

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

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: 这段代码中另一个常见的复制问题在 ApplicationMap.java 和 Sorter.java 文件中,ApplicationMap.java 包含一个共 27 行的复制代码块,演化架构与紧急设计: 对设计进行重构(5),如清单 1 所示: 清单 1. ApplicationMap.jav

这段代码中另一个常见的复制问题在 ApplicationMap.java 和 Sorter.java 文件中。ApplicationMap.java 包含一个共 27 行的复制代码块,如清单 1 所示:


清单 1. ApplicationMap.java 中的复制代码
entries.add(new Map.Entry() { 
  public boolean equals(Object obj) { 
    Map.Entry entry = (Map.Entry) obj; 
 
    return ((key == null) ? 
      (entry.getKey() == null) : 
      key.equals(entry.getKey())) && ((value == null) ? 
        (entry.getValue() == null) : 
        value.equals(entry.getValue())); 
  } 
 
  public int hashCode() { 
    return ((key == null) ? 
      0 : 
      key.hashCode()) ^ ((value == null) ? 
        0 : 
        value.hashCode()); 
  } 
 
  public Object getKey() { 
    return key; 
  } 
 
  public Object getValue() { 
    return value; 
  } 
 
  public Object setValue(Object obj) { 
    context.setAttribute(key.toString(), obj); 
 
    return value; 
  } 
}); 

除了多次使用嵌套的三元运算符外(是判断任务安全性编码的良好指标,因为任何人都不能读取这些代码),这段复制代码的有趣之处并不在于代码本身。而是在于在出现复制的两个方法之前显示的先兆。第一处如清单 2 所示:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:演化 架构 紧急

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