Questo è il requisito aziendale:
" Un pacchetto vacanze (ad es. Pacchetto vacanze New York NY) può essere offerto in diversi modi in base alla città di origine:
- Da Nuova Delhi a New York
- Da Bombay a NY
- NY stesso (pacchetto Land)
(Grassetto implica selezione predefinita)
a. e b. L'utente può volare da New Delhi o Bombay a NY.
c. NY è un pacchetto Land, in cui un utente può raggiungere NY da solo ed è un pacchetto vacanze indipendente.
"
Diciamo che ho una classe che rappresenta HolidayPackage , Destinazione (alias City).
public class HolidayPackage{
Destination holidayCity;
ArrayList<BaseHolidayPackageVariant> variants;
BaseHolidayPackageVariant defaultVariant;
}
public abstract class BaseHolidayPackageVariant {
private Integer variantId;
private HolidayPackage holidayPackage;
private String holidayPackageType;
}
public class LandHolidayPackageVariant extends BaseHolidayPackageVariant{
}
public class FlightHolidayPackageVariant extends BaseHolidayPackageVariant{
private Destination originCity;
}
Quali strutture dati / oggetti dovrei progettare per supportare:
- Opzioni
- un valore predefinito all'interno di quelle opzioni
Sidenote: un HolidayPackage può anche essere offerto in diversi modi in base alle selezioni di hotel. Mi piacerebbe seguire un design che posso sfruttare per supportare questo caso d'uso in futuro.
Questo è il design del backend che ho in mente.