1

我有以下两种方法: AddSingleEmployee(Employee e); AddMultipleEmployees(列表 e);

这两种方法实现的逻辑是一样的,只是对象类型不同。如果是多个员工,我将使用 foreach 循环来填充 Employee 属性,否则不会。

有什么模式可以用来实现这个吗?如果有,是哪一个?

4

2 回答 2

1

这种简单的事情没有模式 - 只需从第二种方法循环调用第一种方法。C# 示例:

public void AddMultipleEmployees(List<Employee> employees)
{
    foreach(Employee employee in employees)
       AddSingleEmployee(employee);
}

此外,无需在方法名称中指定参数类型 - 您可以在 C# 或 Java 等语言中使用方法重载:

public void Add(List<Employee> employees)
{
    foreach(Employee employee in employees)
       Add(employee);
}

public void Add(Employee employees)
{
    // code
}   
于 2013-07-08T13:49:11.573 回答
1

您可以将其从接受列表更改为数组,然后您可以将其重构为一种方法:

public void addEmployee(Employee... employees) {
   for (Employee e : Arrays.asList(employees)) {
       // TODO
   }
}

此方法将接受一名或多名员工,并使调用者更容易推理。

于 2013-07-08T13:53:32.917 回答