我有两种方法如下: AddSingleEmployee(员工e); AddMultipleEmployees(List e);
这两种方法中实现的逻辑是相同的,唯一的区别是对象类型。如果是多个员工,我使用foreach循环来填充Employee属性,否则不会。
是否有任何模式可用于实现此目的?如果是这样,哪一个?
答案 0 :(得分: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
}
答案 1 :(得分:1)
您可以将其从接受列表更改为数组,然后您可以将其重构为一个方法:
public void addEmployee(Employee... employees) {
for (Employee e : Arrays.asList(employees)) {
// TODO
}
}
此方法将接受一个或多个员工,并使调用者更容易进行推理。