Implicit Interface Implementation: si stava meglio quando si stava peggio (?)

I blog sono una risorsa fantastica, peccato siano così dispersivi: quando il numero di sottoscrizioni inizia ad essere "importante", ti ritrovi a leggere i post velecemente e (ahimè) superficialmente. Certo, la mia abitudine di ignorare i commenti ai post mi fa risparmiare un po' di tempo, ma evidentemente non abbastanza (in fondo, vorrei *anche" lavorare ed avere una vita privata <g>). Fortunatamente, "a volte ritornano" (cit.) e quindi stamattina ho riletto questo post di Martin Fowler, che offre un interessante punto di vista sulla implementaziona di interfacce implicite (che è tutt'altra cosa rispetto alla "implementazione implicita di interfaccia"). Come Martin spiega, poter fare quanto detto renderebbe più agevole implementare stub/fake/mock object in alcuni scenari. Beh, non solo concordo con Martin, ma sorrido al pensiero che il tanto vituperato Visual Basic 5 offriva questa possibilità, andata persa con l'avvento di .NET (ma non è che i javisti se la passino meglio).

Technorati tags:

posted @ lunedì 18 settembre 2006 12.26

Print

Comments on this entry:

# re: Implicit Interface Implementation: si stava meglio quando si stava peggio (?)

Left by Giulio at 26/09/2006 9.51
Gravatar
Ciao Andrea,

ho letto la entry in questione sul blog di Fowler. In poche parole - se non ho capito male - l'implicie interface permette di definire un'interfaccia, farla implementare da una classe (che quindi aggiungerà anche metori e proprietà ulteriori) e poi far implementare l'interfaccia che questa classe espone ad una seconda classe. Giusto?
Se è così credo che la cosa sia "aggirabile" con una certa eleganza e semplicità: se definisco una interfaccia IMailable, poi creo una seconda interfacca ICustomer con Customer implements ICustomer e ValuedCustomer implements ICustomer.

Forse fatico a capire come l'uso di interfacce implicite possa rendere più facile la vita al programmatore. Trovo invece una pesante limitazione l'impossibilità di definire una classe internal e di farla ereditare a diverse classi public (mi sembra che in Java sia possibile), così da poter definire una implmentazione comune (utilissima quando si sviluppano librerie "ad intra" che verranno aggiornate ed estese) comunque riutilizzabile senza (eccessivi) sforzi.

Ciao,
Giulio

Your comment:



 (will not be displayed)


 
 
 
Please add 2 and 6 and type the answer here:
 

Live Comment Preview:

 
«marzo»
domlunmarmergiovensab
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910