Si dice che i programmatori dovrebbero preferire la composizione sull'ereditarietà. Mi stavo chiedendo se RTTI può essere raggiunto facilmente usando la composizione.
È possibile creare un meccanismo di ispezione che consente di identificare la delega. In generale questo non è auspicabile perché interrompe l'incapsulamento e limita quindi le opzioni per cambiare la classe sotto controllo senza infrangere il codice client. D'altra parte, se hai bisogno di quel tipo di informazioni in un caso speciale, ad es. alcune applicazioni del comando o del modello di strategia, è facilmente possibile aggiungere i propri metodi di riflessione. Tuttavia, non posso pensare ad un esempio in cui non considererei un tale approccio come un difetto di progettazione e ti incoraggerei a cercare un design alternativo in cui il chiamante non abbia bisogno di sapere il funzionamento interno dell'oggetto chiamato.
Leggi altre domande sui tag object-oriented