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:
SportCarPriceCalculationPolicyutilizzaHIGH_CONSTANT_FACTORcodificato e recuperafindPrice(Low). - a
Carnon 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?