Class PackagePricingStrategy
- All Implemented Interfaces:
PricingStrategy
PricingStrategy e definisce la
strategia di calcolo
del prezzo per i pacchetti (contenitori di più articoli) presenti in una riga
d'ordine.
Viene utilizzata quando una OrderLine si riferisce specificamente a
un pacchetto promozionale o raggruppato,
distinguendosi dalla vendita di articoli singoli.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncalculatePrice(OrderLine line) Calcola il prezzo totale per la riga d'ordine passata come parametro, specifica per un pacchetto.
-
Constructor Details
-
PackagePricingStrategy
public PackagePricingStrategy()
-
-
Method Details
-
calculatePrice
Calcola il prezzo totale per la riga d'ordine passata come parametro, specifica per un pacchetto.Cosa succede: Il metodo verifica prima che la riga d'ordine contenga effettivamente un pacchetto. Successivamente, restituisce il valore del sottototale già calcolato e memorizzato nell'oggetto
OrderLine.Perché viene fatto così: Il prezzo di un pacchetto è spesso forfettario o soggetto a promozioni specifiche. La logica che determina questo valore è "congelata" nell'entità `OrderLine` al momento della creazione dell'ordine. In questo modo, restituiamo semplicemente il valore storico, garantendo che le modifiche future al prezzo o alla composizione del pacchetto non alterino retroattivamente gli ordini già effettuati.
- Specified by:
calculatePricein interfacePricingStrategy- Parameters:
line- La riga d'ordine di cui calcolare il prezzo. Deve contenere un riferimento valido a un pacchetto.- Returns:
- Il prezzo totale per la riga (corrispondente al subtotale memorizzato).
- Throws:
IllegalArgumentException- Se la riga d'ordine non contiene un pacchetto valido (è null).
-