给定网络服务方法:
public void FindSomeEntities(int? Id, string param1, int? param2, ...)
重构:
public void FindSomeEntities(SelectionParameters selectionParameters)
class SelectionParameters
{
public int? Id;
public string param1;
public int? param2
...
}
优点:
- 原始Web服务方法中的太多参数减少到唯一的一个
- 如果需要更改,我们不必更改方法的接口 - 只需更改 SelectionParameters 的定义
缺点:
- 类 SelectionParameters 没有任何商业价值 - 它仅用作辅助类,并且在单个方法中使用。结果,我们将拥有许多带有 1 个参数的方法和大量一次性类
- 实际上界面改变了,我们只是把这些改变推得更深一点。