Mi pare che sia più un esempio legato ad una gestione di un DB, il tuo :-D
Secondo il tuo schema, si presuppone che il computer stia sempre acceso per cui in qualunque momento io possa accedere ad una fattura chiamandola ad esempio fatt123.stampa.
Ma se spengi il PC? Al riavvio, devi ricaricare tutto da un DB... ecco, un oggetto è una cosa che sopravvive finché il programma gira (non è detto che possa essere riversato su un file, però).
Analizziamo (se non ti bastasse l'esempio delle macchinine) l'esempio degli algoritmi di crittazione ed approfondiamolo....
Gli algoritmi di crittazione son complessi algoritmi con operazioni eseguite per diverse volte (cicli) su blocchi fissi di dati o flussi di dati di lunghezza arbitraria.
Hanno spesso la necessità di un "set-up", vale a dire devono essere inizializzati. L'inizializzazione è la preparazione dei valori iniziali e questa operazione si fa in genere 1 volta per ogni password, passando un VI (un vettore di inizializzazione).
Se usi gli oggetti, non devi ogni volta richiamare tutto l'algoritmo tramite procedure interne ad un form ma puoi impostare un oggetto che svolga il compito per te.
Esempio: potresti creare un oggetto Salsa (un algoritmo di cifratura di tipo streaming) con attributi Password, Testo e Lun_Chiave e metodi Inizializza, Cifra e Decifra.
Da quest'oggetto potresti istanziare, cioè derivare, 2 classi distinte, Salsa128 ed Salsa256: esse differiranno l'una dall'altra per la proprietà Lun_Chiave, rispettivamente a 128 e 256 bit.
DIM cSalsa128 As New Salsa
DIM cSalsa256 As New Salsa
Siccome queste sono istanze, cioè derivazioni, dell'oggetto Salsa, ereditano i suoi metodi ed i suoi attributi. Perciò puoi adesso impostare la lunghezza della chiave per le 2 classi così:
[/code]
cSalsa128.Lun_Chiave = 128
cSalsa256.Lun_Chiave = 256
[/code]
perché entrambe le classi "sanno" che posseggono un attributo denominato Lun_Chiave dato che lo hanno ereditato dall'oggetto Salsa che lo possedeva (come lo possedeva? Beh, lo avevi scritto tu nel suo codice :-)).
Adesso, se vuoi cifrare un documento con il Salsa a 128 non devi far altro che invocarlo così:
cSalsa128.Inizializza(VI)
cSalsa128.Testo = strTesto
cSalsa128.Password = strPassword
TestoCifrato = cSalsa128.Cifra
Se devi cifrare altro testo, basta richiamare questo codice:
cSalsa128.Testo = strTesto2
TestoCifrato2 = cSalsa128.Cifra
Come vedi non hai dovuto né reinizializzare l'algoritmo né reimpostare la chiave o la lunghezza di essa: questo perché la classe cSalsa128 derivata dall'oggetto Salsa conserva, finché non viene distrutta, le informazioni che gli hai passato. E non devi neanche richiamare sub-routine per eseguire il codice: basta invocare i metodi della classe affinché essa esegua le operazioni in proprio.