Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580

    programmazione ad oggetti....domande e incomprensioni

    salve a tutti
    tuytti i libri spiegano del concetto della programmazione ad oggetti, ma nei loro esempi,oltretutto molto banali. mancano di mettere un bell'articolo su un progetto "reale" ..altro che un bel "hello word"
    vorrei quindi porvi un paio di domande:
    ah...cmq se faccio le domande e gia' nella domanda sbaglio qualcosa..ditemelo pure!

    1)il mio capo insiste a farmi creare una funzione in una classe che mi restituisce un tot di valori,a volte anche enormi,al posto di varie routine che mi restituiscano il massimo,minimo ecc..,e qeusto dice per semplificarmi la vita, ma io ogni volta che mi serve qualcosa dovrei andarmi a ciclare tutto il datatable,quando avrei benissimo fatto una funzioncina che si collegava al db...mi spiegate il motivo?,anzi pare che pure microsoft usi fare funzioni che restituiscono datatable

    2)far ritornare da una classe un dataset o datatable per lavorare nei form...non si rischia di rallentare il programma? in quanto perfino il mio capo mi sollecita a farmi ritornare tutto una serie di dati per poi elaborarli dove serve nei vari form...io prima del suo suggerimento usavo mettere dei parametri nella funzione e qeusta mi filtrava i dati e mi restituiva solo quello che mi occorreva tramite un datareader e non un dataset....mi spiegate xke conviene farmi ritornare tutto in modo disconnesso conviene?

    3)la connessione dove e quando la aprite e chiudete? (please ditemi cosa fate anche per i web form), in genere io la aprivo nella new della classe e la chiudevo appena concludevo l'operazione (al nothing dell'oggetto la chiudo) , ma il mio capo mi ha suggerito di passare tramite parametro la connessione gia aperta... :master: ,ma in questo modo

    4)parlando di sub e funzioni,il mio capo si stranisce quando vede una sub o funzione che accetta parametri optional,in quanto vorrebbe tante sub diverse oppure un parametro di tipo integer che determina che select eseguire,mentre io uso i parametri optional per concatenare i vari "AND" nelle select per le variabili valorizzate..cosa mi dite a riguardo?

    grazie
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Io provo a risponderTi :

    1 - Ma io penso per una completa divisione tra Codice e Interfaccia. Inoltre se la classe implementa iDisposable risulta piu' pulito pulire il Garbage Collector

    2 - Certo perchè non occupi il traffico di rete, primis e secondo fai lavorare il client e non il server. Ma per me è sbagliato perchè MSDN dice e non consiglia di usare le Stored Procedure per fare cio' ...

    3 - Io personalmente uso una Classe che è Inherits della Connection e nella New la Apro e nella Dispose la Chiudo. Inoltre implemento il DataReader che se la chiude da solo quando ha finito di leggere i dati.

    4 - Sicuramente è dispersivo e inutile usare select ed if, se hai un valore Costante usi o le costanti private o le enumerazioni

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    Originariamente inviato da raffaeu
    Io provo a risponderTi :

    1 - Ma io penso per una completa divisione tra Codice e Interfaccia. Inoltre se la classe implementa iDisposable risulta piu' pulito pulire il Garbage Collector

    2 - Certo perchè non occupi il traffico di rete, primis e secondo fai lavorare il client e non il server. Ma per me è sbagliato perchè MSDN dice e non consiglia di usare le Stored Procedure per fare cio' ...
    [/QUOTE]
    3 - Io personalmente uso una Classe che è Inherits della Connection e nella New la Apro e nella Dispose la Chiudo. Inoltre implemento il DataReader che se la chiude da solo quando ha finito di leggere i dati.
    [/QUOTE]
    lo ho fatto anceh io nella classe, ma il problema è giutno quando ho dovuto usare funzioni che richiedessero dati da 4-5 classi,in questomodo ogni classe apriva una sua connessione! il mio capo a questo proposito mi ha fatto notare che microsoft ha creato tutti gli oggetti che richiedono una connessione come parametro e che deve essere aperta,
    4 - Sicuramente è dispersivo e inutile usare select ed if, se hai un valore Costante usi o le costanti private o le enumerazioni
    come facevo io con un parametro opzionale, se dovevo modfiicare qualcosa lo facevo in una sola routine,mentre come vuole il mio capo(o faccio piu funzioni oppure metto una parametro di tipo int che mi determina che select fare) dovrei andarmi a ricercare nel codice il punto esatto dove modificare la select.insomma sarebbe dispersivo
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Allora per il la

    3 - Sbagliato perchè se usi una classe che gestisce la Conn avrai anche un metodo che la passa ByRef come aperta ...

    4 - Sicuramente un Enum che viene gestito in Byte è meno dispendioso e molto piu' comprensibile di un mega If o Select con valori Integer !! Mamma mia cosa fai 20 righe di commento per capire a cosa corrispondono i valori.

    Di al tuo capo di darsi una ripassatina sul MSDN perchè non condivido le sue idee, personalmente.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Re: programmazione ad oggetti....domande e incomprensioni

    Originariamente inviato da Kahm
    tuytti i libri spiegano del concetto della programmazione ad oggetti, ma nei loro esempi,oltretutto molto banali. mancano di mettere un bell'articolo su un progetto "reale" ..altro che un bel "hello word"
    Sì, ma si deve anche tenere conto del fatto che in un libro, dovendo introdurre il programmatore alla OOP, non si può partire da un esempio troppo vasto o complesso.

    Ad ogni modo, non ho trovato nel tuo quesito domande particolarmente legate all'OOP, quanto ad un discorso di architettura generale che può essere giusto o sbagliato a seconda degli strumenti e delle necessità che, però, non sono dettagliate.

    Originariamente inviato da Kahm
    1)il mio capo insiste a farmi creare una funzione in una classe che mi restituisce un tot di valori,a volte anche enormi,al posto di varie routine che mi restituiscano il massimo,minimo ecc..,e qeusto dice per semplificarmi la vita, ma io ogni volta che mi serve qualcosa dovrei andarmi a ciclare tutto il datatable,quando avrei benissimo fatto una funzioncina che si collegava al db...mi spiegate il motivo?,anzi pare che pure microsoft usi fare funzioni che restituiscono datatable
    Non è ben chiaro quanto hai scritto. Stai dicendo che ti suggeriscono di fare funzioni che restituiscono DataTable al posto di semplici valori? Ma questi valori dovrebbero essere immagazzinati all'interno di una DataTable dopo un calcolo puramente eseguito via codice oppure provengono anch'essi da un database?

    Originariamente inviato da Kahm
    2)far ritornare da una classe un dataset o datatable per lavorare nei form...non si rischia di rallentare il programma? in quanto perfino il mio capo mi sollecita a farmi ritornare tutto una serie di dati per poi elaborarli dove serve nei vari form...io prima del suo suggerimento usavo mettere dei parametri nella funzione e qeusta mi filtrava i dati e mi restituiva solo quello che mi occorreva tramite un datareader e non un dataset....mi spiegate xke conviene farmi ritornare tutto in modo disconnesso conviene?
    "Lavorare" nei form è piuttosto generico: in certi casi, non si può lavorare su DataReader, quindi non c'è scelta. Bisogna poi vedere come vengono trattati i dati restituiti.

    Originariamente inviato da Kahm
    3)la connessione dove e quando la aprite e chiudete? (please ditemi cosa fate anche per i web form), in genere io la aprivo nella new della classe e la chiudevo appena concludevo l'operazione (al nothing dell'oggetto la chiudo) , ma il mio capo mi ha suggerito di passare tramite parametro la connessione gia aperta... :master: ,ma in questo modo
    In applicazioni Web, si usa aprirla all'inizio di ogni elaborazione e chiuderla subito dopo. L'elaborazione può essere intesa come l'estrazione di dati con un DataReader, oppure la memorizzazione in un DataSet, o entrambe in sequenza.
    Il concetto è che andrebbe chiusa il prima possibile, liberando le risorse.

    In un'applicazione Windows Forms, generalmente non si ha a che fare con il multithreading, a meno di non introdurlo di proprio pugno, quindi a seconda dei casi può essere aperta all'avvio e chiusa alla terminazione.

    Originariamente inviato da Kahm
    4)parlando di sub e funzioni,il mio capo si stranisce quando vede una sub o funzione che accetta parametri optional,in quanto vorrebbe tante sub diverse oppure un parametro di tipo integer che determina che select eseguire,mentre io uso i parametri optional per concatenare i vari "AND" nelle select per le variabili valorizzate..cosa mi dite a riguardo?
    Ne faccio raramente uso. Preferisco sfruttare i parametri opzionali solo in quei casi in cui devo modificare il "prototipo" di un metodo pur mantenendo la compatibilità delle chiamate già esistenti.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da Kahm
    lo ho fatto anceh io nella classe, ma il problema è giutno quando ho dovuto usare funzioni che richiedessero dati da 4-5 classi,in questomodo ogni classe apriva una sua connessione! il mio capo a questo proposito mi ha fatto notare che microsoft ha creato tutti gli oggetti che richiedono una connessione come parametro e che deve essere aperta
    Non è necessario ereditare da XXXConnection. Sarebbe sufficiente creare una classe "helper" che contenga tanti metodi quante sono le interrogazioni più o meno complesse da effettuare sul DB (che non hai ancora specificato, e che potrebbe modificare alcune considerazioni in merito), aprendo e chiudendo la connessione ai dati (passata come parametro o creata all'interno, magari con le due versioni dei metodi in overload) quando necessario.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    Originariamente inviato da alka
    Non è necessario ereditare da XXXConnection. Sarebbe sufficiente creare una classe "helper" che contenga tanti metodi quante sono le interrogazioni più o meno complesse da effettuare sul DB (che non hai ancora specificato, e che potrebbe modificare alcune considerazioni in merito), aprendo e chiudendo la connessione ai dati (passata come parametro o creata all'interno, magari con le due versioni dei metodi in overload) quando necessario.
    ho preso spunto dal tuo suggerimento, ora ho una piccolissima difficolta:
    ho creato un parametro nel costruttore della classe che accetta la connessione come parametro

    il punto è questo...nelle varie funzioni della classe come faccio a passargli la connessione che ho passato al new della classe?

    per caso.....
    un semplice dim conn as oledbconnection e nel new() associare il parametro a conn??? se si come?

    grazie del chiarimento
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da Kahm
    ho creato un parametro nel costruttore della classe che accetta la connessione come parametro
    il punto è questo...nelle varie funzioni della classe come faccio a passargli la connessione che ho passato al new della classe?
    Devi aggiungere alla classe un campo di tipo XXXConnection in cui memorizzare il riferimento all'oggetto che viene passato come parametro al costruttore.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    MashalByReference

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da raffaeu
    MashalByReference
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.