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.