Ho una classe che gestisce lo stato di una risposta, chiamata StockResponse
.
Il codice ha più if per gestire ogni stato del titolo. La maggior parte dei casi ha un comportamento predefinito, ma alcune condizioni richiedono ulteriori if-else per gestire correttamente la risposta.
Le condizioni sono difficili da mantenere e sembra avere un metodo enorme con molte condizioni if-else.
Sto indovinando quale sarà il modo migliore per gestirli. Il codice ora si presenta così:
public Result ProcessStockState(StockResponse response)
{
if(response.state==StockStateEnum.Ok)
{
if(response.Sender==Sender1){ /* code....*/ }
else if ( response.Sender==Sender2){/*code ...*/ }
else {/**default handling code...*/}
}
else if(response.state==StockStateEnum.Unkown)
{
if(response.Sender==Sender5){ /* code....*/ }
else if ( response.Sender==Sender7){/*code ...*/ }
else if ( response.Sender==Sender10){/*code ...*/ }
else {/*default handling code ...*/}
}
else if(response.state==X)
{
/*Multiple conditions that ussually differ from the other ifs*/
/*It always have a default behaviour*/
}
}
Quale modello / modello mi consiglieresti di evitare quella cascata if-else?