Supponiamo di essere nel mondo della domanda di noleggio auto:)
Diciamo che ho 3 tipi di auto con 2 categorie di prezzo:
Car type Price category
------------------------------
Sport High
Luxury High
Economy Low
I valori di High
e Low
possono cambiare nel tempo, quindi dovrebbero essere un'entità separata con una propria rappresentazione in DB.
Ogni tipo di auto ha una propria strategia di calcolo dei prezzi, ad es. noleggiare un Sport
costi auto (High x time_rented) + High_constant_factor
.
Di seguito è il mio approccio attuale:
- una strategia / politica di calcolo per tipo di auto. Incapsula il know-how necessario per calcolare il prezzo, con le seguenti responsabilità: determina il fattore costante da utilizzare, preleva il prezzo appropriato da un pronti contro termine e infine calcola il prezzo totale applicando la giusta formula di calcolo. Esempio:
SportCarPriceCalculationPolicy
utilizzaHIGH_CONSTANT_FACTOR
codificato e recuperafindPrice(Low)
. - a
Car
non sa nulla del suo prezzo oconstant_factor
.
È un buon approccio? O dovrebbe Car
essere consapevole del suo prezzo e passare High
/ Low
come argomento a un criterio ed evitare che tale politica abbia alcuna dipendenza dal repository?