Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [OOP] Quand'è che finisce una classe e ne inizia un'altra?

    Ciao ragazzi, da un po' mi sono dedicato alla OOP, ho fatto qualche script funzionante ma non credo di essere entrato correttamente nel concetto e nella logica della programmazione ad oggetti.

    Ho studiato tutto per bene, so cosa sono le classi, gli oggetti, interfacce, astrazione etc. il mio problema e mettere in pratica tutte queste cose.

    Leggendo sui libri, spesso, purtroppo, vengono utilizzati degli esempi poco pratici (creazione della classe automobile, la classe felino, la classe essere umano etc) che non trovano nessuna applicazione reale, ti mostrano soltanto le regole della OOP.

    Ho guardato qualche script OO e l'ho confrontato con i miei.. ho notato che io butto la una, due classi e ci zeppo dentro 6/7 funzioni piene di codice, che non danno l'idea di essere una programmazione OO! Gli altri script sono molto più ordinati, salta all'occhio..e anche se nel complesso devono svolgere una funzione semplice sono presenti diverse classi..a differenza dei miei..

    Tanto per farvi un esempio:

    Sto facendo uno script che preleva da un codice xhtml dei commenti, interroga il database andando a ricercare l'ID del commento trovato per poi selezionare da un' altra tabella un contenuto con l'ID del commento, da mettere al posto di quest'ultimo nel codice xhtml. Una sorta di template engine per intenderci.

    Che ho fatto:

    Mi sono creato una classe e ci ho messo dentro tutte le funzioni che mi occorrevano, dalle query alla ricerca del testo al rimpiazzo del testo..ma quello che ho fatto seppur funziona, non m'ispira pe' gnente!

    Fatemi qualche esempio per favore, come strutturereste voi OOP guru una cosa del genere?
    Vi prego datemi qualche dritta perchè so che sto sbagliando! ma non ne cavo le gambe

    ..poi mi scoraggio e mi passa la voglia..

  2. #2
    Il ragionamento è simile alla programmazione procedurale (che nel caso di php io la preferisco, dato che PHP NON E' NATO OO).
    Cmq cerca di specializzare quanto + è possibile una classe con i metodi che ha.

    Per esempio: tu nn vorresti che una funzione prendesse una variabile da form, controllasse se è numerica, intera e maggiore di zero, facesse una query su un db cercando i record con la colonna X uguale a questa variabile, li stampasse a video formattandoli in html e paginandoli 10 alla volta no?

    Per risolvere questo problema faresti 4 funzioni.

    Il ragionamento è lo stesso, scomponiti i problemi e fai dei metodi semplici, poi quando vedi che in una classe ci sono dei gruppi d metodi diversi tra loro, mettili in classe diverse. C'è solo da far un pò di pratica non è niente d esageratamente difficile!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  3. #3
    Originariamente inviato da Nunkij
    Il ragionamento è simile alla programmazione procedurale (che nel caso di php io la preferisco, dato che PHP NON E' NATO OO).
    Cmq cerca di specializzare quanto + è possibile una classe con i metodi che ha.

    Per esempio: tu nn vorresti che una funzione prendesse una variabile da form, controllasse se è numerica, intera e maggiore di zero, facesse una query su un db cercando i record con la colonna X uguale a questa variabile, li stampasse a video formattandoli in html e paginandoli 10 alla volta no?

    Per risolvere questo problema faresti 4 funzioni.

    Il ragionamento è lo stesso, scomponiti i problemi e fai dei metodi semplici, poi quando vedi che in una classe ci sono dei gruppi d metodi diversi tra loro, mettili in classe diverse. C'è solo da far un pò di pratica non è niente d esageratamente difficile!
    Grazie per la dritta

    Ieri sera ho organizzato il mio lavoro, relativo allo script che ho citato nel primo messaggio, in questo modo:

    Una classe DbOp per le varie selezioni dei dati dal db:
    - Selezione del template
    - Selezione ID commento
    - Selezione contenuti relativi agli ID dei commenti

    Una classe Commenti:
    - Richiama la classe e il metodo per selezionare il template corrente
    - Esegue operazioni di ricerca dei commenti all'interno del codice xhtml
    - Restituisce un array con i commenti trovati

    Una classe Contenuti:
    - Richiamo la classe e il metodo per selezionare i contenuti in base all'array restituito dalla classe commenti, restituisco un array di contenuti

    Una classe TemplateEngine che devo fare:
    -Esegue le operazioni di sostituzione dei commenti con i contenuti e le varie impaginazioni del testo

    Può andare?

  4. #4
    Bhe nn conoscendo i dettagli del tuo sw nn posso darti spiegazioni precise, in ogni caso penso che possa tranquillamente andare!!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

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.