The reason I ask is because I can seem funny to have two classes of the same base class that use each other.
Solo alcuni controesempi che dovrebbero dimostrare il punto:
- Un
Boss è un Person . Un Employee è un Person . Un Employee ha un Boss .
- Un bambino ha un padre e una madre, anche se sono tutti solo
Person oggetti.
- Un
Rifle è un Weapon . Un GrenadeLauncher è un Weapon . A Rifle può avere un GrenadeLauncher collegato ad esso.
Non c'è niente di sbagliato in questo.
Penso che questo sia divertente perché nelle applicazioni LOB, un insieme di classi è spesso progettato per controbilanciare a vicenda, il che spesso porta a classi che rappresentano ruoli che si escludono a vicenda e raramente hanno ereditarietà relative alla funzionalità.
Ma non è questo il caso. E se approfondisci le implementazioni tecniche, che non sono progettate per implementare funzionalità ma piuttosto per migliorare lo standard del codice, vedrai che le ereditarietà condivise diventano molto più comuni.