Supponiamo di avere più istanze I1
, I2
, I3
, ecc. di un insieme di classi C1
, C2
, ecc. Supponiamo che queste classi ereditino tutte da una super-classe S
.
Supponiamo che ci sia un'operazione O(a, b)
che richiede due istanze di S
e verifica se sono compatibili (in alcuni casi è compatibile.) Per verificare la compatibilità, tuttavia, O deve conoscere il tipo di a
e b
( C1
, o C2
, ...) e l'operazione può essere eseguita solo una volta che i tipi sono noti.
Il modo basilare per implementare O
sarebbe quello di scrivere se le istruzioni ovunque per controllare i tipi e quindi eseguire l'operazione. Questo non è l'ideale perché ci sono molti casi da coprire e perché non è estendibile.
Esiste un modello associato a questo tipo di problemi? È possibile scrivere un'operazione estensibile basata sui tipi?