Sfondo: ho bisogno di rendere le stesse informazioni in due formati di testo. Per fare questo, ho una serie di classi di modelli che memorizzano le informazioni appropriate. Devo quindi rendere le stesse informazioni in due modi diversi.
Ogni modello ha una lista di "azioni". Diverse azioni hanno attributi diversi.
Come posso gestirlo nel mio codice di rendering senza passare al tipo di azione? Sto lavorando sul presupposto che un'istruzione switch sul tipo di oggetto sia una cosa negativa.
if isinstance(action, ActionOne):
render_action_one(action)
elif isinstance(action, ActionTwo):
render_action_two(action)
Le classi di azioni, essendo parte del modello, non sanno come eseguire questo rendering.
Modifica: Questo è accaduto in Python, ma non penso che sia così importante qui.