Newsgroup: it.comp.lang.visual-basic
Titolo: Classi vs moduli normali

Salve a tutti
magari a molti quella che sto per chiedere sembra una cretinata... ma
abbiate pietà:
sto leggendo uno di quei tascabili della mondadori, quello su VB6.
Sono al capitolo in cui si parla delle classi e dell'utilità delle classi.
La questione è che non riesco a capire quale sia la differenza, o meglio,
che vantaggio ci sia nel fare una classe piuttosto che un modulo normale nel
quale inserire sub e funcion che possano essere richiamate da tutto il
programma (e magari condividendo il modulo, da altri progetti)?
Grazie a chi si degnerà di rispondermi
Ciao.
Mauro

 programma (e magari condividendo il modulo, da altri progetti)?
Aaaaaaaaaaaaaaaaarrrrrrrrrrrrrrhhhhhh!
Perché il modulo lo cambi, lo giri, lo pirli, lo modifichi ogni volta, ogni
volta lo ricompili e ri-finisce nell'exe e perché il modulo, anche volendo
può essere come una ed una sola istanza della classe.
La classe:
1- Una volta fatta diventa una cellula di codice estremamente riutilizzabile
e può essere compilata a parte (In un progetto di DLL ActiveX per esempio)
ed essere riutilizzata da tutti i tuoi programmi senza che venga ogni volta
re-inglobata nell'eseguibile...
2- Perché una classe può anche essere esposta publicamente da progetti
ActiveX (DLL, EXE e OCX) e quindi puoi permettere ad altri di interagire con
il tuo programma.
3- Perché fatta la classe non sei vincolato all'esistenza di una sola
istanza... puoi creare tutti gli oggetti che vuoi... Pensa per esempio ad un
controllo come la textBox o un Recordset ADO... Se fossero fatti con dei
moduli... come li gestiresti? Variabili private e funzioni publiche? Non
credi che impazziresti? :) Invece se fai una bella classe... fatta una
volta... e non ci pensi più... ogni volta che ti serve un oggetto con le
funzionalità della classe 2 righe di codice e ce l'hai...
Ci sarebbero altre differenze, ma queste mi sembrano le più eclatanti (che
italianoooo! che italianooooooo!!! :)) ...
Come avrai capito sono pro-classi e pro-[programmazione ad oggetti]. Questo
non vuol dire che il tuo sistema sia sbagliato... credo che tutti siamo
partiti da lì ed ancora adesso mi sembra una cosa valida... per esempio
spesso faccio dei moduli per contenere dichiarazioni di API e subroutine che
le usano senza creare delle classi... Quando mi sembra che la funzionalità
sia ridotta o, per esempio, quando non riesco a dare una logica di "oggetto"
al blocco di codice uso ancora un modulo standard "da riutilizzare"... :)
Spero di non averti confuso le idee...
                                Ciao
                                                    Allanon

 Spero di non averti confuso le idee...
Sei stato più che chiaro e queste differenze mi bastano.
Grazie 1000
Ciao
Mauro

 programma
Devi vederla così:
Un modulo è una libreria di funzioni di utilità.
Una classe è un oggetto, non ha molto a che vedere con un modulo standard.
Esempio classico (ahah, piaciuta la battuta? classe-classico :) ok la
smetto):
Classe Automobile
Proprità
    - Colore
    - Modello
    - Cilindrata
Potrai fare
Dim MiaAuto as Automobile
così potrai usare l'oggetto Automobile con tutte le sue proprietà ben
raggruppate nell'oggetto stesso.
Capito?
Ciao