sconti dinamici per prodotti specifici

1

Ho una tabella di sconti / offerte, che sono applicabili solo quando si soddisfano determinati requisiti. Esempio:

  • Dimensione: media, Categoria: classico, max. Ingredienti: 3, consegna: raccolta

Soddisfare questi requisiti comporta che l'utente abbia i prodotti a un prezzo inferiore (prezzo assoluto, non relativo)

Sto pensando al modo migliore per implementarlo. Naturalmente potrei sia controllare che definire questi vincoli staticamente nel codice, ma pensi che potrebbe esserci una soluzione dinamica? Ciascuna offerta deve essere rappresentata da una classe che implementa un'interfaccia di offerta?

Product:
- getPrice()

Offer1 implements Offer:
- getFinalPrice
- checkForConstraints

O sto andando a questo sbagliato? Fammi sapere cosa ne pensi.

    
posta jvitasek 18.07.2017 - 16:40
fonte

2 risposte

0

Questo è un esempio da manuale di dove è necessario digitare la tipografia

Product:
-getBasePrice()

IOfferConditionsType (interface):
-getOfferConditionsTypeName()
-matchesConditions(?)


//Implement the different offer condition types, you can also implement just one Dynamic conditions type if the conditions are simple and loaded from the DB

Offer:
-getOfferName()
-getOfferDescription()
-IOfferConditionsType // you can store OfferConditionType in the DB to load different types of conditions
-matchesConditions(?)  // call IOfferTypes
-finalPrice(price) //this should be completely separate than matches conditions, you will  need to know the price of an offer without the conditions matching so you can advertise it
    
risposta data 18.07.2017 - 18:20
fonte
1

Pensaci in questo modo:

  • In produzione, è accettabile che l'applicazione debba essere ricompilata e ridistribuita ogni volta che cambia una definizione di sconto?

Se sì, quindi definire tutte le classi che si desidera. Se no, deve avere le definizioni di sconto lette da un file, fornite da un microservizio diverso, modificabili tramite una GUI o altro, ma non definite nel codice sorgente.

    
risposta data 18.07.2017 - 16:44
fonte

Leggi altre domande sui tag