Ho un sacco di classi che ereditano da Violation . Queste sottoclassi violano il modello a regole diverse: UsedTimeslot , TeamConstraint , ecc ...
Devo verificare quale tipo di violazione è avvenuta per rispondere ad essa:
if team_constraint_violation_ocurred:
corresponding_action()
Tuttavia, l'unico meccanismo che ho di controllare quale tipo di violazione si è verificato è il controllo del tipo di classe:
if isinstance(violation, TeamConstraintViolation):
corresponding_action()
Questo è un modo corretto di identificare il tipo di un oggetto? O dovrei introdurre un attributo type , come enum ? O dovrei usare un design diverso del tutto?