PDA

Visualizza la versione completa : [*] Sviluppo progetto gestione clienti usando OOP


ninuzzopoker
17-04-2007, 14:43
Ho letto diverse guide sulla OOP ma nn credo di aver ben capito come si sviluppa il progetto

Vi faccio un esempio:

Una società deve gestire i propri clienti.

Gli oggetti sono:

Clienti
Codice,Ragione Sociale,Indirizzo,città etc(proprietà)
Acquisto,richieste informazioni,pagamento etc(azioni)

Società

Nome,telefono,email,P.IVA etc..(proprietà)
Invio prodotti,Invio pubblicità,Risposte richieste,emissione fatture etc(azioni)

OPPURE usare una logica tipo database come la seguente

Clienti
Codice,Ragione Sociale,Indirizzo,città etc(proprietà)
Acquisto,richieste informazioni,pagamento etc(azioni)

Località

codice,siglaProvincia,Nome etc..(proprietà)


Se queste nn sono corrette potete farmi un esempio di ogetti

Grazie,aiutatemi a capire

Ciao

UltraBeginner
17-04-2007, 15:08
Originariamente inviato da ninuzzopoker
Ho letto diverse guide sulla OOP ma nn credo di aver ben capito come si sviluppa il progetto

Vi faccio un esempio:

Una società deve gestire i propri clienti.

Gli oggetti sono:

Clienti
Codice,Ragione Sociale,Indirizzo,città etc(proprietà)
Acquisto,richieste informazioni,pagamento etc(azioni)

Società

Nome,telefono,email,P.IVA etc..(proprietà)
Invio prodotti,Invio pubblicità,Risposte richieste,emissione fatture etc(azioni)

OPPURE usare una logica tipo database come la seguente

Clienti
Codice,Ragione Sociale,Indirizzo,città etc(proprietà)
Acquisto,richieste informazioni,pagamento etc(azioni)

Località

codice,siglaProvincia,Nome etc..(proprietà)


Se queste nn sono corrette potete farmi un esempio di ogetti

Grazie,aiutatemi a capire

Ciao

Uhm, premetto che sono fresco di prog a oggetti (4 mesetti) però provo a darti una mano, al massimo mi correggerà uno degli espertoni del forum :)
Il codice che riporto e scritto in C++.

Bhe innanzitutto credo che ti sia un po confuso.

Clienti e Societa sono le tue classi, da cui istanzierai (cioe creerai) i vari oggetti.

La tua classe Clienti per es potrebbe essere fatta cosi:

class Clienti
{

public:
Clienti(); // costruttore
// di seguito i metodi della classe Clienti, cioe le azioni
void Acquisto ();
void richieste ();
void informazioni();
void pagamento()

private:
// i dati della classe Clienti
char * Nome;
char * telefono;
char * email;
char * PIVA;
}

Quando avrai definito i metodi della tua classe allora potrai istanziare quanti oggetti vuoi di tipo Clienti vuoi per es.

int main()
{
Clienti Mario_Rossi,Luigi_Bianchi;
}

A questo punto Mario_Rossi e Luigi_Bianchi avranno i metodi e i dati che hai descritto nella classe clienti.

Se ti serve altro fai un fischio.

Saluti!

PS. ma che linguaggio devi usare?

Caiodark
17-04-2007, 16:06
Ok il tuo è un dubbio di carattere filosofico che esula dal linguaggio utilizzato.
La programmazione ad oggetti consiste nel creare delle strutture che incapsulano sia i dati da maneggiare che i metodi che li devono modificare.
La cosa importante da tenere in mente è che un oggetto deve essere coerente, cioé deve essere specializzato nella gestione di un aspetto specifico del tuo programma, in modo da poterlo utilizzare ogni qual volta devi compiere quella operazione.
La programmazione ad oggetti di consente poi di aggregare più oggetti all'interno di un singolo oggetto per compiere operazioni sempre più complesse e astrarre la gestione logica dei tuoi dati (creazione di ordini, un nuovo cliente, fatturazione) dalla loro gestione fisica (GUI, stampe, salvataggio in database).
Grazie all'ereditarietà puoi derivare da oggetti padre altri oggetti che oltre ai metodi e ai dati base implementano nuove funzionalità e/o estendono quelle ereditate.

Detto questo ecco un modello possibile modello per la tua applicazione

Un oggetto che faccia da Data-Layer per la connessione al database, recupero e salvataggio di dati.
Un classe clienti che contenga la classe data-layer e gestisca l'anagrafica clienti
Una classe documento generico che contenga la classe data-layer, la classe printer e la classe cliente e gestisca tutte le operazioni comuni dei documenti.
Una classe fattura che erediti da documento e gestisca le operazioni tipiche della fattura.
Una classe bolla che erediti da documento e gestisca le operazioni tipiche della bolla.
... e così via.

La difficoltà nel realizzare un progetto di programma in OOP sta nel saper creare un modello in cui tutte le operazioni ripetitive siano incapsulate in classi specifiche, tutte le operazioni comuni vengano incapsulate nelle classi più astratte e la gestione logica dei dati venga astratta dalla rappresentazione del dato.

ninuzzopoker
17-04-2007, 17:24
Il linguaggio che vorrei imparare è l' ASP.NET 2.0 ma prima di imparare la sintassi credo sia meglio imparare a creare il progetto e poi trasformarlo in codice

Se invece dell'Asp.net dovrò usare il c++ o il php saro comunque pronto a farlo

Grazie per le risposte ho capito che non devo usare la logica che uso per creare le Entità nel database,ma una nuova

Le nuove sfide mi affascinano

A presto(vi faro delle domande meno basilari,speriamo)

:ciauz: a tutti

Loading