Ho problemi nella progettazione di classi che riflettono comportamenti / regole aziendali diversi. Un esempio per spiegare il mio caso:
- a tour has a departure
- a departure may be a guaranteed departure
if a departure is guaranteed:
- a guaranteed departure may have a date that, starting from that date:
* departure cannot be cancelled by tour agency for any reason
* before that date in can be cancelled
* but it may not have a date indicator, which means departure can't be cancelled
else:
- departure can be cancelled anytime by agency for any reason
Qual è il modo corretto di progettare classi in tali scenari?
- Un campo booleano semplice (cancellabile) e un campo Data semplice (cancellabile prima) nella classe Partenza
se cancellabile == true e cancellableBefore == null = > sempre cancellabile
se cancellabile == true e cancellableBefore! = null = > cancellabile se ora < cancellableBefore
...
e così via ...
o c'è una risposta OO a questo?