演化架构和紧急设计: 利用可重用代码,第 2 部分:捕捉惯用模式
2010-07-19 00:00:00 来源:WEB开发网使用元程序设计
元程序设计提供一种不错的方式将模式代码与实现代码区分开来,因为您使用关于 代码的代码来表达您的模式。Java 语言提供的一种不错的方法就是属性。您可以通过定义属性来创建声明性元程序设计标记。属性提供一种简明的方式来表达概念。您可以将大量功能装入一个小空间,方法就是将其定义为一个属性并修饰相关的类。
这里有一个很好的示例。大多数项目中最常见的技术惯用模式是验证,它非常适用于声明性代码。如果您将验证模式作为属性予以获取,可以用明确的验证约束标出您的代码,这不会影响代码的主旨。下面看一下清单 4 中的代码:
清单 4. MaxLength 属性
public class Country {
private List<Region> regions = new ArrayList<Region>();
private String name;
public Country(String name){
this.name = name;
}
@MaxLength(length = 10)
public String getName(){
return name;
}
public void addRegion(Region region){
regions.add(region);
}
public List<Region> getRegions(){
return regions;
}
}
使用属性标记代码元素的能力揭示了您的意图,即让一些外部因素对后面的代码起作用。这反而更易于区分模式部分和实现部分。您的验证代码很醒目,是因为它看起来 不像周围的其他代码。这种通过功能划分代码的方式使我们更易识别特定职责、进行重构和维护工作。
MaxLength 验证程序规定 Country 名不能超过 10 个字符。属性声明本身出现在清单 5 中:
更多精彩
赞助商链接