Newsgroup: it.comp.lang.delphi
Titolo: Consiglio su come inizializzare un oggetto

Ho una classe Titolo (che rappresenta un titolo azionari. obbligazionario, 
etc).
Mi chiedo quale è il modo migliore di inizializzare l'oggetto Titolo, perchè 
vi possono essere vari casi:
- si istanzia un oggetto che fa riferimento ad un Titolo non ancora 
esistente. In questo caso gli attributi dell'oggetto sono forniti 
dall'utente
- si istanzia un oggetto che fa riferimento a un titolo esistente: i dati 
dell'oggetto sono reperibili da un file su disco.
- inoltre l'oggetto che rappresenta un titolo esistente può essere 
aggiornato con dati forniti dall'utente
Come si fa in questi casi ? Come distinguere i casi? Nel Create magari, e 
con che cosa? Spero di essermi spiegato e vorrei dei consigli. Grazie in 
anticipo. 
 
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
http://www.avast.com
 
 

 Mi chiedo quale è il modo migliore di inizializzare l'oggetto Titolo [...]
 
Per me, il tuo oggetto Titolo (inteso come istanza di un'ipotetico "TTitolo") deve contenere solamente i dati del titolo, indipendentemente da dove vengono caricati.
 
Poi andrei a creare una interfaccia per "caricarlo" da una fonte che può essere implementata da classi, laddove ciascuna classe gestisce un particolare tipo di fonte.
 
-- 
MARCO BREVEGLIERI (Software and Web Developer)
 #Home: 
http://www.marco.breveglieri.name
 
 #Blog: 
http://www.compilaquindiva.com
 
 #DelphiPodcast: 
http://www.delphipodcast.com
 

"Marco Breveglieri"  ha scritto nel messaggio 
news:0ed3beb2-b62d-41bd...@googlegroups.com...
Per me, il tuo oggetto Titolo (inteso come istanza di un'ipotetico 
"TTitolo") deve contenere solamente i dati del titolo, indipendentemente da 
dove vengono caricati.
Poi andrei a creare una interfaccia per "caricarlo" da una fonte che può 
essere implementata da classi, laddove ciascuna classe gestisce un 
particolare tipo di fonte.
 
Naturalmente, grazie del consiglio, ma avrei delle domande: Cosa intendi per 
'creare un'interfaccia' ? Un form ? Io avevo pensato, nella mia scarsa 
conoscenza di object orientation,  che la classe TTitolo potesse possedere 
dei metodi per 'caricarsi'. Ma volendo seguire il tuo consiglio, vorrebbe 
dire per esempio, creare una classe che reperisce i dati da dataset ? E 
questa classe dovrebbe usare la classe TTitolo ? Ho capito bene ? 


 questa classe dovrebbe usare la classe TTitolo ? Ho capito bene ? 
 
Diciamo che non c'è nulla di male nella tua soluzione.
 
Io sono abituato a separare le responsabilità degli oggetti, quindi se devo caricare in memoria in un oggetto dati provenienti da diverse fonti, vado a creare:
 
1) 
un oggetto che contenga esclusivamente i dati;
 
2) 
una interfaccia (simile a una classe astratta, vedi l'articolo) con i metodi propri che avrà qualsiasi classe la implementi; ad esempio, "ITitoloManager" (nome fittizio per rendere l'idea);
 
3)
le classi che implementano l'interfaccia del punto 2) con il codice necessario per gestire il titolo (es. "TTitoloManager").
 
Nulla vieta di fare come hai detto tu, ma in questo modo hai un sistema estensibile (puoi creare quanti "manager" vuoi), non farcisci l'oggetto che deve contenere i dati di dipendenze da altri componenti e librerie tanti quanti sono i sistemi da cui vuoi leggere/scrivere le informazioni, puoi creare facilmente dei "mock" per sostituire la classe "manager" con qualsiasi implementazione fittizia che ti consenta di procedere con lo sviluppo in modo indipendente, prima ancora di implementare i caricamenti/salvataggi, dando per scontato che funzionerà in un momento futuro, puoi creare degli Unit Test, ecc.
 
E' ovvio che il sistema diventa leggermente più complesso, anche se la complessità dipende dal modo in cui sei abituato a lavorare.
 
Se vuoi procedere con la tua implementazione, puoi farlo tranquillamente: valuta solo le due strade tenendo presente quanto può evolversi la struttura che stai mettendo in piedi.
 
Ciao,
  Marco.


Sono vecchio e faccio fatica  con l'object orientation. Direi che ne sono 
entusiasta in teoria, ma nella pratica ho bisogno di guida nel concepire le 
classi di cui ho bisogno. Quindi la mia idea di soluzione non la peroravo 
affatto, piuttosto cercavo di capire meglio i tuoi suggerimenti, che 
apprezzo molto. Proverò quindi anche le Interfaces, che non conoscevo. Il 
link che mi hai dato le spiega bene. 


 classi di cui ho bisogno. 
 
Scusa...Vecchio quanto? :-D
A parte cio', a prescindere dal materiale esistente sul web che DEVE ESSERE ATTENTAMENTE VALUTATO E NON PRESO A PRESCINDERE PER ORO COLATO, l'unica è tozzare, sudare e farsi le ossa.
 
A.
 

"Alberto Salvati"  ha scritto nel messaggio 
news:ab88e343-efef-4305...@googlegroups.com...
Scusa...Vecchio quanto? :-D
A parte cio', a prescindere dal materiale esistente sul web che DEVE ESSERE 
ATTENTAMENTE VALUTATO E NON PRESO A PRESCINDERE PER ORO COLATO, l'unica è 
tozzare, sudare e farsi le ossa.
A.
Direi che è quello che sto facendo. Glisso sull'età .. 


> Glisso sull'età .. 
 
Tra poco a me saranno 47...
 
A.

"Alberto Salvati"  ha scritto nel messaggio 
news:4aea9d85-9cba-44d4...@googlegroups.com...
Tra poco a me saranno 47...
A.
Tra poco per me puoi rovesciare. 
