Newsgroup: it.comp.lang.c++
Titolo: è l'unico : modificare factorymethod ,per passari ivalori

salve,
devo modificare una factorymethod (pattern) implementata da manuale in modo 
che
il cliente possa dialogare con il prodotto.
avete qualche idea
naturalmente il tutto in c++ standard ..in sostanza il client deve poter 
passare
al prodotto una classe (reference o puntatore) ed il prodotto deve poter 
ritornare questo valroe
modificato.
graizie ciao
p.s
non metto codice perchè non è presente è tutto puramente teorico... 

 modificato.
Non lo so, in genere non chiacchero molto con il software che scrivo, 
quindi non ti so dire.
Onestamente, i tuoi post sono ogni volta generici e pieni di errori di 
ortografia, il che li rende (almeno per me) incomprensibili. Se a te 
arrivasse una domanda come quella che hai scritto, pensi che senza alcun 
contesto uno possa darti una risposta?
Vuoi "dialogare"... ritornare un valore modificato... e che vuol dire? 
Hai appena descritto un sistema di I/O, e una funzione. Cavoli, che 
problema specifico!
-- 
Mat/tia Belletti             - Graduate student @ 
cs.unibo.it
ICQ: 33292311                - email: 
mbel...@cs.unibo.it
IRC: RedGlow                 - site(s): 
http://mbellett.web.cs.unibo.it/
Red...@jabber.linux.it/Gaim
 - Linux user 299762 @ machine 213003


Forse per gli errori hai ragione e che non riverifico mai,
Comunque se uno, conosce i pattern credo di si ,la maggior parte delle 
parole che ho utilizzato fann parte del
glossario dei pattern.
cliente o client in inglese = classe che utilizza il prodotto
prodotto = classe che viene creata ed utilizzata dal client
Specificare il contensto non è neccessario il perchè mi sembra abbastanza 
ovvio,
Grazie Ciao .-)

 Grazie Ciao .-)
"Come faccio a fare qualcosa?".
Suppongo che tutte le parole che ho usato siano comuni e chiare a tutti. 
Questo non rende la domanda meno generica.
Oh, poi probabilmente il problema e' mio che non riesco a capire, eh. 
Tuttavia, credo tu potresti in ogni caso essere piu' chiaro. Lo dico 
_per te_, che cosi' avresti piu' risposte e piu' complete, _a me_ non 
cambia proprio nulla.



Un contesto non c'è perchè il pattern stessso è indipendende dal contesto fa 
"qualcosa" e stop.
Sinceramente non so come spiegarlo in altro modo.
Provo a descrivere l'architettura attuale(in fin dei conti sempre c++ è) :
Ho una interfaccia con dei metodi virtuali puri da questa derivano altre 
classi (prodotto)
poi ho un'altra classe(factory) che ha un metodo es: create che crea 
istanzia, le classi prodotto concrete (derivate da l'interfaccia) in base ad 
un  parametro
Ora con questo metodo ho la sicurezza che il client (chi utilizza le classi 
prodotto) gestisca in maniera omogenea tutti le classi
prodotto (essendo tutte derivate dalla stessa interfaccia) queste al loro 
inteno posso fare di tutto.
In pratica faccio una cosa del genere:
//dal client
c_prodotForm *form = fform->createForm(enIdMovimenti,apri_normale);
form->show();
form->form_delete();
delete form;
ora io vorrei trovare il modo di poter passare (set) un parametro "generico" 
int,una mia classe ecc., alla classe prodotto e anche di poterlo prendere 
(get)
mantendo comunque questa omogeneita' , ed avendo come vincolo che il client 
conosca solo le classi prodotto e naturalmente il parametro da passare 
(quello aggiuntivo)
Grazie come sempre ciao :-)

 (quello aggiuntivo)
Non ti basta aggiungere questi setters e getters alla classe base 
virtuale (c_prodotForm)?
Oppure, se vuoi che questi setters/getters siano specifici di alcune 
classi derivate, sei obbligato ad aggiungerli a quelle, e fare cast 
quando ti servono (magari sfruttando RTTI per vedere se si puo' 
effettivamente fare).
Se ho capito male, prova a fare qualche esempio di cio' che il sistema 
deve e non deve permettere.


 Forse per gli errori hai ragione e che non riverifico mai,
Purtroppo non è la prima volta che dici di non verificare la corretta
grammatica e la punteggiatura dei tuoi interventi. Mi dispiace dovere
aggiungere che anche io (per quello che vale) spesso non capisco molto di
ciò che scrivi.
Ti assicuro che se tu verificassi i tuoi scritti prima di inviarli al
Gruppo,il lavoro di correzione ritornerebbe immediatamente a tuo vantaggio:
per esperienza vedo che in genere più le domande sono formulate bene
maggiori in quantità e qualità sono le risposte.
Inoltre, effettuando una veloce revisione, non avresti la necessità di
impegnare il tuo tempo a scrivere altri posts con i chiarimenti e
precisazioni che spesso ti vengono richiesti al fine di fare comprendere
meglio.
Comunque vedo che sei una persona interessata a parecchi argomenti e poni
continuamente domande di ogni genere, e questa è una cosa ottima. Continua
con questa stessa voglia ma solo con un pizzico di disciplina in più.
Beh, scusami se ti sono sembrato inopportuno (soprattutto per le ultime tre
righe).
Buon lavoro,
fabiomdf
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Ho due minuti liberi:
Mea culpa chiedo perdonoooo tutto giusto
buon lavoro anche a voi. 

 ha scritto nel messaggio 
news:csfut6$hd2$1...@le1.cs.unibo.it...

Capito hai capito :-) siamo a buon punto,
Il problema e che vorrei poter usare questo meccanismo, per qualsiasi classe
Il caso concreto è questo :
Io dentro i miei prodotti , creo una form (di un framework qualsiasi) , 
MFC,VCL, SDK ecc.
ora devo trovare (con questa architettura o anche riscrivendola) un modo che 
mi permetta di passare delle classi da manipolare ad una form questa ci fa 
qualcosa e poi mi ritorna un risultato
il client però non sa assolutamente che sta lavorando con una form, ma solo 
con il prodotto.
Questa genericità mi porta ad usare i template solo che non so come usarli 
cioè non so dove metterli nella mia architettura (forse va ripensata e mi 
serve qualche consiglio)
E poi il problema instriseco dei template e che metteno "alla luce" le 
classi che manipolano perdendo un pò di incapsulamento (problema che vorrei 
evitare )
Utilizzando i template una possibile soluzione era quella di far tornare al 
prodotto (tramite metodo template)  un "tipo" , ma la classe base
Interfaccia è così:
class c_abProdotto() {
//tutti i metodi virtuali puri
};
in pratica non ci sono dati , e quindi non  posso usare come dicevo sopra un 
metodo template che ritorna cosa? non avendo dati ... per intenderci non 
posso
fare dentro quel metodo template una cosa del genere:
qualcosa->tornadato() , perchè non ho "qualscosa" daltra parte non posso 
fare diventare template  c_abProdotto prodotto perchè a quel punto perdo 
tutti i vantaggi  essendo obligato
ad esporre al client la classe che dovrebbbe utilizzare come prodotto (tanto 
valore usare direttamente la form)
Spero di aver chiarito meglio il tutto
confido in voi.