В моем домене есть FinanceRequests и CommisionTransactions. Если у меня есть список FinanceRequests, каждый запрос FinanceRequest может содержать несколько CommisionTransaction, которые необходимо вернуть. Не беспокойтесь, как именно это делается.
Класс ниже (самый нижний) заставляет меня чувствовать себя нечетким и теплым, поскольку он лаконичен и прекрасно повторно использует существующий код. Одна проблема Стирание типа.
public void clawBack(Collection<FinanceRequest> financeRequestList)
public void clawBack(Collection<CommissionTrns> commissionTrnsList)
У них обоих одинаковая подпись после стирания, то есть:
Collection<FinanceRequest> --> Collection<Object>
Collection<CommissionTrns> --> Collection<Object>
Итак, eclipse жалуется, что:
Метод clawBack (Collection) имеет то же стирание clawBack (Collection), что и другой метод типа CommissionFacade
. Есть ли предложения по его реструктуризации, чтобы он оставался элегантным решением, обеспечивающим хорошее повторное использование кода?
public class CommissionFacade
{
/********FINANCE REQUESTS****************/
public void clawBack(FinanceRequest financeRequest)
{
Collection<CommissionTrns> commTrnsList = financeRequest.getCommissionTrnsList();
this.clawBack(commTrnsList);
}
public void clawBack(Collection<FinanceRequest> financeRequestList)
{
for(FinanceRequest finReq : financeRequestList)
{
this.clawBack(finReq);
}
}
/********COMMISSION TRANSACTIOS****************/
public void clawBack(CommissionTrns commissionTrns)
{
//Do clawback for single CommissionTrns
}
public void clawBack(Collection<CommissionTrns> commissionTrnsList)
{
for(CommissionTrns commTrn : commissionTrnsList)
{
this.clawBack(commTrn);
}
}
}