У меня есть FinanceRequests и CommisionTransactions в моем домене.Если у меня есть список запросов на финансирование, каждый запрос на финансирование может содержать несколько транзакций CommisionTransaction, которые необходимо вернуть обратно.Не волнуйтесь, как именно это делается.
Класс, приведенный ниже (самый нижний), заставляет меня чувствовать себя нечетко и тепло, так как он является лаконичным и прекрасно использует существующий код.Одна проблема Тип стирания.
public void clawBack(Collection<FinanceRequest> financeRequestList)
public void clawBack(Collection<CommissionTrns> commissionTrnsList)
Они оба имеют одинаковую подпись после стирания, т.е.:
Collection<FinanceRequest> --> Collection<Object>
Collection<CommissionTrns> --> Collection<Object>
Так затмение жалуется, что:
Метод clawBack (Коллекция) имеет одинаковыйerasure 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);
}
}
}