Si supponga di aver definito l'interfaccia ISomeInterface con i metodi foo e bar.
E.g.Come gestite quando l'implementazione per un metodo di interfaccia è la stessa per alcune classi?
Diciamo che ho le classi A e B che per loro ha senso sia implementare l'interfaccia. Ma non ha senso avere un'implementazione diversa per foo()
.
Tenendo conto che derivare A da B o B da A è errato/strano c'è una pratica di codifica standard per questo progetto?
presumo ho potuto creare qualche classe utilità per implementare foo()
e chiamarlo come delegato, ma mi chiedevo se tutta questa struttura può essere trattata in modo diverso
Aggiornamento:
Per dare una piena comprensione della mia domanda mi sono imbattuto in questo: http://perlbuzz.com/2010/07/why-roles-in-perl-are-awesome.html e stavo cercando di capire se questa funzione viene a mancare dai tradizionali concetti OO, come li usiamo in Java o no
Perché non fai la tua interfaccia con una classe astratta e fornisci una implzione per foo()? – Seb
Se sei in Java8, potresti fornire una [implementazione predefinita nell'interfaccia] (http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html) o potresti sempre seguire il manifesto agile e optare per una relazione has-A creando un collaboratore in grado di eseguire la funzionalità. A e B avrebbero una relazione is-A con l'interfaccia e una relazione has-A con il collaboratore. –
@Dan Temple: vedere l'aggiornamento – Jim