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?