Sto per iniziare la programmazione per un progetto scolastico che richiede di dimostrare buone pratiche OO in un'applicazione web. Ora, ho creato alcune app Web e non ho mai sentito la necessità di definire le mie classi e utilizzare gli oggetti (al di fuori delle classi fornite da framework e moduli), quindi stavo cercando aiuto per prendere alcune decisioni di progettazione. Potrebbe sembrare che sto forzando un po 'di complessità in un progetto che è troppo semplice da giustificare ma è a scopo dimostrativo.
L'app Web è estremamente semplice. Il "database" è solo un file JSON locale con 2 raccolte che saranno le "tabelle": utenti e sondaggi. Queste raccolte sono elenchi di raccolte di voci.
La mia prima inclinazione è definire una classe di connessione "database". Questa classe creerebbe un oggetto file del file JSON in modalità lettura / scrittura sull'istanza e conterrà alcuni metodi per l'inserimento, l'aggiornamento, l'eliminazione, ecc ...
Ma questa è l'unica parte del progetto a cui posso pensare che ragionevolmente meriti una lezione. Devo definire le classi utente e sondaggio e creare oggetti di quelli ogni volta che è necessario inserirli nel database? I dati arriverebbero nell'app da un modulo html e normalmente userei solo una funzione per massaggiarla nel formato giusto e quindi chiamare la funzione database per inserirla. Istanziare una classe da qualche parte in quel processo sembra completamente inutile.
Gli utenti possono creare sondaggi e votare su altri sondaggi e visualizzare i risultati dei sondaggi precedenti. I sondaggi conterranno una data di inizio e una data di fine e una volta che la data di fine è stata superata i risultati verranno conteggiati e memorizzati in una chiave "risultati" nella raccolta di voci di quel sondaggio.
Ci sono solo 2 entità in questa app: utenti e sondaggi. Quindi, più specificatamente, sto chiedendo dovrei creare una classe di connessione al database con metodi insert, update etc OR classi per utenti e sondaggi che hanno metodi come vote () e update () che poi interagiscono con il file JSON
Dove sarebbe meglio implementare le classi qui?