我有以下两种方法: AddSingleEmployee(Employee e); AddMultipleEmployees(列表 e);
这两种方法实现的逻辑是一样的,只是对象类型不同。如果是多个员工,我将使用 foreach 循环来填充 Employee 属性,否则不会。
有什么模式可以用来实现这个吗?如果有,是哪一个?
我有以下两种方法: AddSingleEmployee(Employee e); AddMultipleEmployees(列表 e);
这两种方法实现的逻辑是一样的,只是对象类型不同。如果是多个员工,我将使用 foreach 循环来填充 Employee 属性,否则不会。
有什么模式可以用来实现这个吗?如果有,是哪一个?
这种简单的事情没有模式 - 只需从第二种方法循环调用第一种方法。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
}
您可以将其从接受列表更改为数组,然后您可以将其重构为一种方法:
public void addEmployee(Employee... employees) {
for (Employee e : Arrays.asList(employees)) {
// TODO
}
}
此方法将接受一名或多名员工,并使调用者更容易推理。