Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Dubbi su una Classe

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    165

    Dubbi su una Classe

    Salve, avevo intenzione di creare una classe "Persone" in cui andare ad immagazzinare tutti i dati delle persone che ho nel mio database.

    Per ora ho un vettore di oggetti Persona e tutto funziona in maniera corretta.

    Ora volevo chiedere come era possibile avere tutte le persone in un unico oggetto e muovermi tra le varie persone con un metodo del tipo Persone->nextPersona() e Persone->prevPersona().

    E' possibile fare una cosa del genere? Come posso farla?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sì... un modo semplice partendo da quello che hai già può essere l'uso di un vettore interno oppure una lista bidirezionale

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    165
    Originariamente inviato da eiyen
    sì... un modo semplice partendo da quello che hai già può essere l'uso di un vettore interno oppure una lista bidirezionale
    Quindi sarebbe una classe con due attributi, ovvero il vettore delle classi e l'indice? O sono fuori strada?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Potresti avere una classe con gli attributi delle persone (nome, cognome, etc.) e gli indici prev/next che puntano agli oggetti prec/succ (insomma una gestione a "lista")... quando inserisci un nuovo oggetto gli associ come prev l'ultimo oggetto e come next un "null". Puoi avere poi qualche attributo statico per la gestione della lista (first e last che puntano al primo/ultimo oggetto). Dovresti implementare una struttura dati "lista" con doppio indice, insomma.

    attributi:
    dinamici: nome, cognome, PREV, NEXT
    statici: FIRST, LAST

    metodi:
    INSERT
    REMOVE
    GET
    NEXT
    PREV

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    165
    Originariamente inviato da eiyen
    Potresti avere una classe con gli attributi delle persone (nome, cognome, etc.) e gli indici prev/next che puntano agli oggetti prec/succ (insomma una gestione a "lista")... quando inserisci un nuovo oggetto gli associ come prev l'ultimo oggetto e come next un "null". Puoi avere poi qualche attributo statico per la gestione della lista (first e last che puntano al primo/ultimo oggetto). Dovresti implementare una struttura dati "lista" con doppio indice, insomma.

    attributi:
    dinamici: nome, cognome, PREV, NEXT
    statici: FIRST, LAST

    metodi:
    INSERT
    REMOVE
    GET
    NEXT
    PREV
    Ti ringrazio per la risposta... Però c'è qualcosa che non mi quadra: come fai tu, non è una vera e propria lista di oggetti. Come potrei fare a mettere al posto di Nome e Cognome una classe "Persona_singola" ?? Una volta fatto ciò come posso accedere agli attributi di questa classe "Persona_singola" ??

    Grazie mille!

  6. #6
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Quello di cui parli è l'implementazione di una classe Collezione Iterabile, alla quale non importa nulla dei dati che vai a memorizzare al suo interno, ma si occupa solo di accumularli e permetterti di scorrerli

    Potresti definire una classe che implementi l'interfaccia Iterator
    http://www.php.net/manual/en/class.iterator.php

    aggiungerle dei metodi addData e removeData quindi istanziare una Collezione e quando crei degli oggetti Persona Singola diventano argomento addData della Collezione per essere aggiunti all'elenco. Come la Collezione è gestita all'interno vedi tu, nel senso che puoi fare liste concatenate, doppiamente concatenate, circolari, un array (che con php è la cosa più facile), utilizzare le sessioni i DB, i file...

    quando l'oggetto Collezione ti ritorna uno degli oggetti memorizzati al suo interno hai ottenuto una Persona_singola (se è quello che gli hai dato)

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.