Spesso scrivendo codice mi chiedo quale sia il modo migliore per discriminare tra tipi (con cui non intendo necessariamente i tipi usati nei tipi di sistema). Ciò porta a 3 domande:
- Cosa c'è di meglio?
- Quando è meglio?
- Quali sono i (dis) vantaggi?
Uso delle proprietà per discriminare
class BinaryExpression {
String operator; // e.g. "+"
Number lhs, rhs;
}
Sottoclassi per discriminazione
class BinaryExpression {
Number lhs, rhs;
}
class Addition extends BinaryExpression {}
// Etc.
Nota: non sono sicuro di avere i termini giusti. Per favore correggimi se sbaglio.