Per scopi educativi personali sto creando un sito per una conferenza. Uno degli oggetti che esistono in una conferenza è una sessione, che ha diversi stati e in ogni stato ha attributi leggermente diversi:
- Una volta inviato, ha un altoparlante (
User
nel sistema), titolo e abstract. - In fase di revisione contiene recensioni e commenti (oltre ai dati di base)
- Una volta accettato, ha una fascia oraria definita ma nessun revisore.
Ritengo che non sia la cosa migliore aggiungere attributi "status" e iniziare ad aggiungere molte dichiarazioni if
...
Quindi ho pensato che sarebbe stato meglio avere classi diverse per ogni stato, ciascuna con le sue convalide e comportamenti.
Cosa ne pensi di questo design? Hai un'idea migliore?