I assume this is largely language-agnostic, but I'm working in C# if it's not
Diciamo che l'interfaccia I3
eredita da I2
, che a sua volta eredita da I1
. Potrei scrivere questo:
interface I1 { ... }
interface I2 : I1 { ... }
interface I3 : I2 { ... }
O in alternativa questo:
interface I1 { ... }
interface I2 : I1 { ... }
interface I3 : I1, I2 { ... }
Il I1
in interface I3
è ridondante - tutto ciò che implementa I3
richiederà comunque qualcosa dichiarato in I2
, che include qualsiasi cosa in I1
.
A mio parere, quest'ultimo è più leggibile - posso vedere a colpo d'occhio tutte le interfacce di "base" senza dover scavare giù l'albero di ereditarietà, ma non sono sicuro che sia considerato una buona pratica. È? Ci sono trappole nascoste qui?