A volte mi ritrovo con una gerarchia di classi in cui ho una classe base astratta con alcune funzionalità comuni e un paio di classi di implementazione che rientrano in due (raramente più) gruppi che voglio trattare in modo diverso in alcuni casi. Un esempio potrebbe essere una classe di nodo dell'albero astratto e diverse implementazioni di rami e foglie in cui voglio distinguere rami e foglie in qualche punto.È codicile avere classi vuote nel mezzo di una gerarchia di classi?
Queste classi intermedie vengono quindi utilizzate solo per le istruzioni "is-a" nel controllo di flusso e non contengono alcun codice, anche se ho avuto casi in cui hanno "sviluppato" del codice in un secondo momento.
Ti sembra maleodorante? Nell'esempio del mio albero, un'alternativa sarebbe quella di aggiungere /isBranch()
metodi astratti alla classe base e implementare quelli nelle classi intermedie, ma non sembrava che fosse meglio per me, davvero, a meno che non intendessi avere classi che potrebbero essere più cose contemporaneamente.
+1 bello esporre te stesso :-) – KLE
@KLE :-) Beh, grazie per essere il mio pubblico.Ho lavorato per me quasi tutta la mia carriera e a volte può essere difficile ottenere opinioni esterne. –
@Hanno Beh, stai andando alla grande, non preoccuparti. Vai avanti così. Sono davvero impressionato dalle tue 158 domande! ;-) – KLE