Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Domanda su oggetti...PRINCI salta qua!! :)

Dunque,
ho una domandina da fare...argomento collection.
Ammettiamo che io ho una classe Persona(class1) e una classe 
ProprietaPersona(class2); fin qui tutto bene...improvviso qualche riga 
di codice per fare meglio un esempio.
Nella classe PropritaPersona(class2) ho:
Option Explicit
Public Property Get Nome()
    Nome = "Pippo"
End Property
Public Property Get Cognome()
    Cognome = "Pippos"
End Property
_________________________________________________
Nella classe Perona(class1) ci piazzo un bel:
Option Explicit
Private m_PersonaProp As Class2
Public Function Insert()
    ....
    ...
    .....
End Function
Public Function ListaPersone()
End Function
Public Property Get Proprieta() As Class2
    Set Proprieta = m_PersonaProp
End Property
Private Sub Class_Initialize()
    Set m_PersonaProp = New Class2
End Sub
_________________________________________________
Domande:
1)
E' corretto creare nell' oggetto Persona un metodo ListaPersone che 
dovrebbe restituirmi una collection di oggetti Persona, o è più giusto 
dividire l' oggetto Persona da quello Persone, dal quale mi prenderò 
una lista di persone?
Se nel form istanzio:
    Dim pers as Persona(class1)
ha senso fare:
    pers.ListaPersone
...humm...non sono proprio convinto perchè l' oggetto persona dovrebbe 
farmi inserire, cancellare, modificare...o al massimo vedere una 
persona...d' altro canto mi chiedevo...però se non faccio così creo un 
altra classe per mettere dentro un solo metodo...insomma come è meglio 
fare?
2)
Per il momento, senza preoccuparsi molto dove sarà questo metodo che mi 
darà una lista di oggetti, che si trova in Persona, Persone poco 
importa. Ditemi se è giusto quanto stò per scrivere (avevo letto il 
libro di debby sugli oggetti, avevo anche capito bene per un po non ho 
fatto più quella roba e non mi ricordo più una mazza :(( )
Dunque, io farò una select, avrò un recordset popolato con qualosa 
dentro, di fatto, tante persone. Quello che avevo in mnete di scrivere 
è:
   set colpersone = new collection
   Do while not rs.eof
       set qualcosa = new Persona
       qualcosa.proprieta.nome = ""
       qualcosa.proprieta.cognome = ""
nella pseudoclasse che ho fatto io, mancano la let, ammettiamo che le 
proprità in realtà posso leggerle e scriverle...
       colpersone.add qualcosa
       set qualcosa = nothing
       rs.movenext
   loop
   set ListaPersone = colpersona
Ricordo bene??
Saluti...
-- 
Posted from 157.29.81.46 by way of 
smtp2.libero.it
 [193.70.192.52] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote:
[...]
Pronti! Al tuo servizio! ;-))))
Domanda 1)
E' corretto creare nell' oggetto Persona un metodo ListaPersone che
dovrebbe restituirmi una collection di oggetti Persona, o è più giusto
dividire l' oggetto Persona da quello Persone, dal quale mi prenderò
una lista di persone?
Risposta 1)
L'oggetto Persona credo che sia nato per contenere dati ed operazione
riguardante _UNA_ persona, giusto? Allora non mi sembra pulito mischiarvi
dentro funzioni che hanno a che fare con l'insieme di più persone. Le
collections le fa già di suo il VB, se ti bastano le funzioni che ti mette a
disposizione direi che potresti evitare la classe Persone e dichiarare nel
tuo progetto direttamente una Collection nella quale ci infilerai tutte le
Persona che vuoi. Se invece hai bisogno di qualche funzione particolare ti
crei una classe Persone nella quale dichiari una collection che conterrà gli
oggetti Persona più i tuoi metodi (il difetto è che per migliorare la
praticità dell'uso di una classe così dovresti replicarti i metodi della
collection direttamente nella classe che la contiene).
Domanda 2)
[cut del code]
Ricordo bene??
Risposta 2)
Ad occhio direi di sì. A mio avviso questo è proprio ciò che dovresti
implementare nella classe Persone come metodo pubblico particolare (ex:
CreatePersonList).
Poi ricordati però che ogni volta che dovrai accedere ai singoli oggetti
Persona dovrai farlo tramite i metodi della collection.
Dettagli:
la colpersona potrebbe diventare direttamente un private m_listapersone alla
quale accedi tramite una property get
Speriamo di non aver preso abbagli.
Ciao.
--
Princi, 
princ...@programmer.net
----------------------------------------------------------------------
"Tutti sanno che una cosa è impossibile da realizzare,
finché arriva uno sprovveduto che non lo sa e la inventa." A.E.