Istanza multipla della stessa classe?

1

Ho una classe chiamata "Category" per gestire tutte le operazioni e i dati relativi alle mie categorie. Ora, la mia classe è creata, tuttavia ho bisogno di trovare un modo per costruire un oggetto per ciascuna categoria nel mio database.

In una struttura OOP PHP, come dovrei farlo? Stavo pensando di creare una specie di classe CategoryCollection il cui unico scopo sarebbe quello di creare un array contenente un oggetto Category per ciascuna delle mie categorie, tuttavia non sono sicuro che questo sarebbe il modo migliore per ottenere questo.

    
posta Dacramash 04.03.2016 - 23:18
fonte

2 risposte

2

Puoi sempre creare più istanze di una classe! Questo è ciò per cui sono progettate le classi! Ogni oggetto manterrà le proprie variabili interne individuali (a meno che non siano statiche, nel qual caso sono condivise).

Se desideri memorizzarli tutti in una variabile, puoi utilizzare qualsiasi tipo di raccolta (Elenco, Raccolta, Serie). PHP offre il proprio tipo di array

Se desideri passare un elenco di categorie a una funzione o restituire un elenco di categorie. Riempi l'array con oggetti e passalo lungo.

    
risposta data 22.11.2018 - 09:01
fonte
1

Sembra che tu abbia bisogno di due classi:

  1. Categoria, che memorizza i dati relativi a una singola categoria. È probabile che sia un POJO semplice, in genere contenente dati da una singola riga di database. Potrebbero esserci alcuni mehthod comportamentali, ma spesso non ce ne sono.
  2. Elenco categorie, che contiene un elenco di categorie o eventualmente estende qualcosa come ArrayList. In genere questo fornirà solo metodi di comportamento come Category findCategoryByCode(String categoryCode) e List<Category> findIncomeCategories() .

Sembra che la tua classe attuale stia cercando di riempire entrambe le funzioni - prova a scindere le responsabilità. Mi scuso che la mia risposta è orientata a Java. Non ho mai usato oggetti in PHP, ma dovrei applicare le stesse nozioni di base.

    
risposta data 04.04.2016 - 09:32
fonte