Tendo a scrivere con successo applicazioni compatte in grado di incapsulare molte logiche di business in modo semplice e non ridondante. Tendo a creare piccoli metodi, ma con il tempo arrivo a metodi che hanno troppi parametri. So che ogni codice richiede il suo design, ma vedo un anti-pattern nel mio comportamento e non sono sicuro quale sarebbe il modo migliore per combatterlo.Come evitare molti parametri nei metodi critici delle mie applicazioni?
Una situazione tipica sarebbe qualcosa di simile:
public loanStructure CalculateSomeComplicatedInterestRate(enum clientType,
int totalAmout, bool useTaxes, bool doYearlySummary, bool doNotReloadClient, etc)
{
loanStructure ret = new loanStructure();
if (doNotReloadClient) ... ;
...
if (doYearlySummary) GroupResults(ret);
return ret;
}
e all'interno del metodo, un albero di chiamate in avanti le impostazioni booleane (doYearlySummary, doNotReloadClient, ecc) a diverse regole di business che agisce sul calcolo.
IE, il problema non risiede sul fatto che tutti i parametri possono essere incapsulati in un oggetto (bigParameterStructure) ... Io non trovo a mio agio con il modello masterMethod, ma facendo sovraccarichi quali CalculateSomeComplicatedInterestRateMonthly e CalculateSomeComplicatedInterestRateYearly sarebbe solo nascondere un private CalculateSomeComplicatedInterestRate .... qualche problema !!
di progettazione object-orientare grossolano avrebbe aiutato ... ma ho ancora finale per avere questo tipo di metodi da qualche parte sulla miei oggetti ...
Bene ragazzi ... ogni aiuto è benvenuto.
Pablo.
La logica aziendale è quella che è. Se è complicato, è complicato, non è colpa tua. Mi sembra soddisfacente, a meno che non abbiate esempi di questo anche nel codice di logica non commerciale. –