Newsgroup: it.comp.lang.visual-basic
Titolo: Interfaccie

Perdonate l'ulteriore post, ma è tutta oggi che ho il cervello immerso
sulle interfaccie, e più leggo e più cerco, ma più non riesco a convincermi
dell'utilità delle interfaccie.
Questo vuol dire due cose. O non ci ho capito un tubo (ed è presumibile)
oppure nell'esempio che sto cercando di fare non servono ad un tubo.
Immaginate una collezione di dati personali (nome, cognome, ecc.) o meglio
una cosa ancora più astratta gli indirizzi, che possono essere indirizzi di
una persona privata, di una società ecc. ecc.
Bene ho fatto l'interfaccia, ora la sto tirando dentro una dll che deve fare
il lavoro di aggiungere, rimuovere ecc. ecc. ...
Vedere tutte quelle classi private NomeProgetto_Nomeclasse .... a me
personalmente non dice niente ... e non lo reputo utile.
Dove sto sbagliando?
Ciao Andrea

Potrei anche toppare, ma sono abbastanza sicuro si dica interfacce.
La regola che conoscevo, recitava piů o meno cosě:
se la lettera prima di cia o gia č una vocale (farmacia, camicia) allora nel
plurale si conserva la 'i' (farmacie, camicie), se invece č una consonante
(freccia, ascia) la 'i' non ci va (frecce, asce).
Tranne qualche rara eccezione - diceva la regola.
Magari puň tornare comodo a qualcuno ;)
Ciao, Silv:o)

 ha scritto nel messaggio
news:a2p9mq$12pcht$1...@ID-61006.news.dfncis.de...

C'e' un thread recente dove e' stato trattato l'argomento, comunque
prendendo spunto dal tuo esempio proviamo a immaginare qualcosa del genere:
Hai creato la tua classe Indirizzo e la utilizzi all'interno dei tuoi
programmi, i quali sono in grado di applicare alla stessa, tramite i suoi
metodi interni o tramite procedure esterne alla classe, un certo numero di
funzionalita' (modifica dei dati, stampe e quant'altro...).
Domani decidi che hai bisogno di qualcosa di simile per altri scopi, la
classe Indirizzo pero' non ti e' sufficiente in quanto vorresti estenderla
con ulteriori informazioni e metodi, che nel caso di un indirizzo in senso
lato non sono significativi ma lo sono invece per quanto riguarda
l'indirizzo di un fornitore, e inoltre vorresti modificare l'implementazione
interna di alcuni metodi preesistenti per adattarli alla nuova situazione;
d'altra parte vuoi mantenere inalterate le possibili elaborazioni gia'
applicabili alla classe generale anche per questa tua nuova implementazione
A questo punto puoi regolarti in 2 modi:
a) modifichi le tue procedure per fare in modo che accettino in input non
piu' una specifica classe Indirizzo bensi' un generico Object, quindi crei
la classe IndirizzoFornitore a immagine e somiglianza della prima.
Funziona tutto, solo che hai dovuto rinunciare all'early binding e
soprattutto, in fase di compilazione non puoi mai verificare che l'oggetto
passato alle funzioni sia effettivamente del tipo corretto, e che entrambi
espongano le stesse identiche proprieta' e metodi (per l'appunto, la stessa
interfaccia)
b) implementi Indirizzo nella tua classe IndirizzoFornitore; ora sei
automaticamente sicuro che questa nuova classe sia congruente a livello di
interfaccia con quella di base, mantenendo la liberta' di aggiungere nuovi
membri e anche di decidere per ogni singolo membro esistente se utilizzare
l'implementazione di base oppure fornirne una personalizzata (in un
linguaggio OO per davvero, come il nuovo .NET, la tua classe derivata
erediterebbe anche le implementazioni di base, con VB attuale puoi farlo "a
manina" tramite delega)
a questo punto le tue funzioni continuano ad accettare in input una generica
classe Indirizzo, ma potranno essere chiamate indistintamente con un oggetto
Indirizzo, IndirizzoFornitore, IndirizzoSocio ecc.. senza per contro
soffrire delle limitazioni espresse nel punto a)
Tieni inoltre presente che questo sistema rende il tuo sistema anche molto
piu' aperto per eventuali integrazioni di terze parti, che in linea di
massima non devono fare altro che implementare a loro volta la medesima
interfaccia nelle loro classi custom
Come puoi vedere da quanto detto sopra, definire interfacce e', se vogliamo,
un modo di "guardare un po' piu' in la", rispetto al semplice utilizzo di
una classe, e ti predispone meglio ad uno sviluppo modulare e flessibile dei
tuoi programmi
Spero sia un po' piu' chiaro adesso, chiedo venia per le ripetizioni ad
nauseam di "classe","implementazione" ecc.. ma sono un po' a corto di
sinonimi ;-)
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 ha scritto
| Perdonate l'ulteriore post, ma è tutta oggi che ho il cervello immerso
| sulle interfaccie, e più leggo e più cerco, ma più non riesco a convincermi
| dell'utilità delle interfaccie.
Un'interfaccia serve nel momento in cui tu hai dati "catalogabili" alla stessa maniera ma che si
"trattano" in maniera diversa. Ad esempio gli indirizzi di privati e gli indirizzi di società:
entrambe i tipi di dati hanno tutte le caratteristiche in comune (nome, via, città), quello che le
distingue e' il modo di maneggiare questi dati: ad esempio se in entrambe le classi e' previsto che
si debba stampare, vi sarà in entrambe le classi un metodo "Stampa"; solo che per le stampe di
indirizzi di privati vuoi usare ad esempio un bordo fatto di fiorellini, mentre per la stampa di
indirizzi di società vuoi che il bordo, sempre per esempio, sia fatto di tanti pipistrellini.
L'interfaccia non serve ad altro che a imporre un protocollo di comunicazione tra gli oggetti che
implementano da quella interfaccia ed il mondo esterno.
L'interfaccia serve a identificare con la stessa variabile più tipi di dato differenti tra quelli
che implementano la stessa interfaccia. Questa e' la base del polimorfismo.

 Ciao, Silv:o)
sapevo anch'io cosi'.
camìcie, ciliègie, farmàcie :)
anche per non confondere camicie e camice
si solleva pero' un'interessante caso:
se la lettera prima della vocale sono i due punti, come in
    silv:o
che si fa ?
    silv::i ?
:)
--
ciao, j.farmàcia
www.sundaysw.com

 ha scritto nel messaggio
news:a2pf1p$12nknk$1...@ID-49224.news.dfncis.de...


Rispondo a qeuesto thread, anche se in realtà è valido
anche per il post di jabba.
Le spiegazioni sono esaurienti ... ma è proprio il concetto che
non riesco a capire. Mo faccio un esempio, perchè altrimenti
passo per mezzo deficente.
Allora
*********** Interfaccia ***********
Public Property Get Nome () as String
'
End Property
Public Property Let Nome (Byval sValue as string)
'
End Property
Public Property Get Cognome () as String
'
End Property
Public Property Let Cognome (Byval sValue as string)
'
End Property
***********************************
*************** Modulo della mia dll **************
Implements Interfaccia
Private Property Get Interfaccia_Nome() as string
'
End Property
Private Property Let Interfaccia_Nome(Byval RHS as string)
'
End Property
Private Property Get Interfaccia_Cognome() as string
'
End Property
Private Property Let Interfaccia_Cognome(Byval RHS as string)
'
End Property
**********************************
Ora ipotizziamo che devo mettere i dati dentro ad un db ...
Beh io la struttura non la vedo confacente all'uso ...
Correggetemi ancora una volta ...


non riesco a capire. 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvb600/html/ifacebased.asp
Sono certo che una volta letto ti risulterà più chiaro...
Ciao,
Moreno
-- 
sirri at morenosoft dot com
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------

 ha scritto
| Le spiegazioni sono esaurienti ... ma č proprio il concetto che
| non riesco a capire. Mo faccio un esempio, perchč altrimenti
| passo per mezzo deficente.
|
| Allora
|
| *********** Interfaccia ***********
| Public Property Get Nome () as String
[...]
|
| ***********************************
|
|
| *************** Modulo della mia dll **************
| Implements Interfaccia
|
[...]
|
| **********************************
|
| Ora ipotizziamo che devo mettere i dati dentro ad un db ...
| Beh io la struttura non la vedo confacente all'uso ...
| Correggetemi ancora una volta ...
Ecco, forse il problema e' che tu devi creare una sola DLL contenente una sola classe. Ma se tu
dovessi *creare* molte classi che implementano tutte dall'interfaccia base, e che si distinguono
l'una dall'altra per come vengono trattati i dati, allora forse capiresti a cosa serve
l'interfaccia...

 camìcie, ciliègie, farmàcie :)
a me sembra di ricordare che ciliegia/ciliege faccia eccezione
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.18. C, C++ and ASM developers
                              and beta testers are welcome!

 a me sembra di ricordare che ciliegia/ciliege faccia eccezione
No.
Recentemente, in materia di linguistica, si e' stabilita 
una regola per cui la i rimane se la c e la g sono precedute 
da una vocale, cade se sono precedute da consonante. 
Quindi "camicie" e "facce", "ciliegie" e "spiagge".
In realta' la regola e' arbitraria, in quanto il suono di
"ciliege" e "ciliegie" e' esattamente identico (la i al
singolare serve a rendere il suono palatale).
E' tutta questione di convenzioni.  Nel testo della
Costituzione, per esempio, si trova "provincie" e non
"province", come si dice oggigiorno.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:n5l05uohgdv91revo...@4ax.com...


 a me sembra di ricordare che ciliegia/ciliege faccia eccezione
dicie che faccie ecciezione ?
francamente, queste sono le cose della lingua italiana che credo meno
importanti. io dico archeologhi e sarcofagi, ma se uno preferisce i
coprofaghi e i profugi non m'interessa molto.
i modi sono tutto.
ciao, a.


 singolare serve a rendere il suono palatale).
Quindi è un po' come per i verbi dare, fare, ecc...: "dà" e "fà" prende
l'accento solo se si rischia di confonderli con altre parole (nella
fattispecie "da" e "fa")?
P.s.: in questo caso anche "fattispecie" segue la regola della "i" pur non
essendo plurale?
Ciao

 con altre parole (nella fattispecie "da" e "fa")?
Fà?
Un'ora fa, lui fa, quando prende l'accento?
Ciao :-P
--
BSD is for UNIX-lovers -- linux is for Windows-haters.

 Un'ora fa, lui fa, quando prende l'accento?
"Fa" non prende mai l'accento.
E così "da".
Casomai talvolta l'apostrofo...
Ciao,
Carlo.

 ha scritto

da roma
egli dà
fa' questa cosa, per favore
j.

 E così "da".
Da lo prende. Io do (o dò), tu dai, egli dà.
Ciao.


 fa' questa cosa, per favore
Insomma... com'è questa regola se c'è? :)
Usando la GetGarzantiVerb() (e anche on line 
www.garzanti.it
) ottengo
fare: bla bla fa
dare: bla bla dà
quindi nemmeno l'apostrofo su "fa" dando ragione ad H.P.L.
Sono perplesso :)
Ciao

 Ciao
ps - java e' adattissima a internet, tant'e' che ha un suo (sotto)sito.
ciao, j.aristoteles
www.sundaysw.com

 mi mancava.
^__^
[cut] --> (tutto corretto!)
Riassumo:
- ba è senz'accento nel senso di "bah"
- ca è con l'apostrofo nel senso di "casa", arcaico
- da è con l'accento in "egli dà"; senza nulla come preposizione (sono gia'
in ginocchio sui ceci(c) per il mio post di prima...), con l'apostrofo come
contrazione della preposizione "dai" (arcaico) o del verbo "dai" (imperativo
di dare): es. "per favore, da' il mestolo in testa alla zia"
- ea è liscio come 234 esadecimale (il caro vecchio NOP del 6502 ;-P ), ma
solo se maiuscolo!
- fa è senz'accento ne' apostrofo come verbo o nota musicale (egli fa,
cent'anni fa, suona il fa...) ma con l'apostrofo come contrazione di "fai"
(imperativo di fare): es. "per cortesia, fa' lo sgambetto alla zia"
- ga se Dio vuole non esiste
- ha... mi astengo
- ja non è italiano
- ka è automobilistico
- la è pulito se articolo o nota musicale, condito di accento se avverbio di
luogo
- ma è liscio se congiunzione avversativa o nel senso di "mah", corretto con
apostrofo se troncamento di "mamma" o "mai"
- na è a sud
- oa non è
- pa è ancora più a sud (o con l'apostrofo se troncamento di "papà")
- ra sono le iniziali di mio padre
- sa è senz'accento come verbo (egli sa), con l'accento nel senso di "dammi"
(dialetto bresciano)
- ta è con l'apostrofo come troncamento di "tali" (ma solo perché lo dice il
vocabolario)
- ua è piccolo o molto triste
- va è liscio se voce del verbo andare, con l'apostrofo nel senso di
"guarda", imperativo
- wa, xa, ya non se ne parla nemmeno
- za, piacendo Iddio, conclude il delirio come voce onomatopeica,
senz'accento.

 "guarda", imperativo
mi sa da warden, come guardia, guardare (qui) e ward (anglosax,
angloclarinett, ecc.)
ciao, ja'.
vuvuvu'.
sunday.co
'


[snip]
Certo che anche voi in quanto a punteggiatura e frasi di senso compiuto
lasciate molto a desiderare... :)
Ancora non ho capito la regola, a parte l'apostrofo che è ovviamente un
segno di troncamento (il famoso "po'[co]").
Quindi ovvio che fai diventa fa' all'imperativo, ma perchè "egli fa" non ha
l'accento mentre "egli dà" sì non mi è ancora molto chiaro.
Ciao

 Quindi ovvio che fai diventa fa' all'imperativo, ma perchè
Perché, non perchè :-P
Ciao.


 Ciao
a me once upon a time dicevano che anche egli fa' ha l'accento, per non
confonderlo (il fa, non egli) con la nota musicale.
j.mi.fa.sol.la.barba.crescere :)

(che sarebbe ora facesse l'upg a ha'2002)
ci pensero' :-)))
-- 
ciao, ha'1961


Gli hai chiesto come mai la stessa regola non si applica anche per Do, per
Re, per Mi, per La e per Si?
:-) L'italiano e` diventato un'opinione, questa e` la dura realta`.
La.So(l),
Re.La.Si.Fa.Fa.Re.Sol.So
(l).Fa
--
One Framework to rule them all,
One Framework to find them,
One Framework to bring them all,
And in the darkness bind them!

 La.So(l),
Re.La.Si.Fa.Fa.Re.Sol.So
(l).Fa
carmen ?
c'era una volta un re che chiedeva dammi il la :)
mi', che do !
si fa, si fa.
qualche accento ci starebbe...

 Perché, non perchč :-P
Sě, questo lo so.
Come si dovrebbe scrivere "é" e non "č", ma chi ha pensato alla tastiera
italiana forse non lo sapeva :P
Ciao

 sapeva :P
Perché, scusa? I caratteri ci sono entrambi.


 si fa, si fa.
Io sapevo questa:
SOL LA muSIca rideRE MI FA
(c) banda osiris
perņ manca il DO...

 Se intendi è come voce del verbo essere (lui è), è giusto è e non é
Ok, è (nota l'accento :P) ora che vada a ripassarmi un po' di grammatica...
Ciao

 ha scritto

:)
mi raccomando
po'
con l'apostrofo, non l'accento :)
ciao, j'