Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 46
  1. #1

    Programmazione OOP - Come e dove sfruttarla (concetti chiave)?

    Ciao.
    So cos'è la OOP a livello teorico, ma non l'ho mai applicata praticamente con cognizione di causa.

    Nella mia applicazione ho creato qualche classe: utenti (metodi per la registrazione nel db, recupero info dal db...), db (connessione singleton), rating...ma ognuna di queste è un semplice contenitore di funzioni (metodi) che richiamo all'occorrenza, nel senso che un'approccio procedurale non avrebbe cambiato nulla! Le funzioni cioè sono raccolte per area di funzionalità e temo che non sia questa la vera natura dell'OOP.
    Ad esempio ho inserito metodi per il recupero/inserimento di info nel db in tutte le classi, questo è un "errore" di concetto perché andrebbero in una classe/sottoclasse DB?

    Senza fare troppe domande o giri di parole, quali potrebbero essere le classi tipiche di un sito dinamico (l'applicazione che sto facendo non si basa sul contenuto di pagine statiche)? Avrei bisogno di qualche esempio o albero gerarchico per "imparare a pensare ad oggetti".

  2. #2

  3. #3
    c'è ne stanno una marea

    Or dunque:
    - gestione dell'input
    - check per le sql injection o xss
    - database abstraction layer con relativi backend
    - query abstraciton layer con relativi backend
    - cache abstraction layer
    - template
    - mail
    - sessioni
    - utenti
    - upload
    - immagini
    - captcha
    - output buffer (aggiunta di copyright, compressione, ottimizzazione contenuti)
    - xml-rpc
    - soap/wsdl

    e cosi via c'è un botto di roba, dipende tutto da quello che ti serve

  4. #4
    Interessante

    Noto che tu, daniele_dll usi le classi ad un livello molto più basso del mio.
    Io per esempio ragiono ad entità.
    Creo la classe Post, la classe Commento, la classe Foto, la classe Utente e così via. Non avevo mai pensato a costruirmi piccoli pezzi come un uploader, o un qualcosa per il check sql injection o le sessioni.
    C'è sempre da imparare!

  5. #5
    Originariamente inviato da Tobler
    Interessante

    Noto che tu, daniele_dll usi le classi ad un livello molto più basso del mio.
    Io per esempio ragiono ad entità.
    Creo la classe Post, la classe Commento, la classe Foto, la classe Utente e così via. Non avevo mai pensato a costruirmi piccoli pezzi come un uploader, o un qualcosa per il check sql injection o le sessioni.
    C'è sempre da imparare!
    Beh, si, anch'io uso queste classi: la gestione dei permessi, delle sessioni, degli utenti ad esempio comprendono singole classi che gestiscono questi aspetti

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    Io ultimamente trovo molta soddisfazione nell'utilizzare le classi astratte per poter riciclare il piu possibile
    del codice.

    Trovo molti piu utilizzi di un tempo.
    Hanno qualche controindicazione di performance ?

    Visto che e' di moda l'argomento :P


    Andrea

  7. #7
    l'esecuzione di codice OO è normale che sia più lenta, ma sinceramente è scesa considerevolmente di posizione nell'elenco delle priorità nel senso che PRIMA struttura tutto a livello organizzativo e a livello funzionale bene e POI ottimizzo tutto l'ottimizzabile senza però intaccare la struttura

  8. #8
    Originariamente inviato da andreamk
    Io ultimamente trovo molta soddisfazione nell'utilizzare le classi astratte per poter riciclare il piu possibile
    del codice.

    Trovo molti piu utilizzi di un tempo.
    Hanno qualche controindicazione di performance ?

    Visto che e' di moda l'argomento :P


    Andrea
    Sì, ho notato che la parola performance va di moda ultimamente

    Intanto ringrazio anche gli altri per la risposta.

    Ma quello che vorrei sapere, forse non sono stato chiaro, è quali sono i metodi tipici e le sottoclassi da integrare nella OOP per un sito web.
    Ad esempio la classe UTENTE è giusto che implementi i metodi per la reg nel db e il prelevamento/aggiornamento dati oppure bisognerebbe fare delle classi/sottoclassi nella classe DataBase (DB) in maniera astratta (a quel punto vorrei sapere cosa fa la classe Utente...).
    Sono questi dettagli che vorrei capire, magari per 3-4 classi tipiche, così posso capire meglio come muovermi per entrare nell'ottica OOP.

    Inoltre, aggiungo una domanda, una sottoclasse ha senso solo se ha bisogno di ereditare tutti o la maggior parte dei metodi implementati nella classe genitore?

    Grazie comunque per l'aiuto a tutti, ottimo forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    E' tutto in relazione a quello che devi fare e alla complessità. (so che e' una risposta del cavolo ma e' cosi)

    Ad esempio se hai una gestione dell'utente semplice con anagrafica e ti interessano esclusivamente le funzioni
    -nuovo utente
    -modifica dati anagrafica
    -disabilita utente
    -utente loggato
    potrebbe aver senso fare un unica classe ma se la gestione dell'utente e' più complessa e c'è la possibilità di avere degli utente admin e degli utenti normali che fanno cose diverse
    allora vale la pena fare una superclasse utente e una admin che estende utente.
    O ancora se hai una gestione elaborata delle ACL potresti valutare l'implementazione di una classe che si occupa solo ed esclusivamente di quelle.

    Se adotti un design pattern MVC comunque devi separare la logica applicativa (controller) dalla gestione della base dati(model).
    Quindi sempre prendendo in considerazione un utente con anagrafica tra cui c'e' il campo codice fiscale.
    dovresti creare una classe che implementa i metodi necessari per lavorare su db.
    Poi un controller che ,presi i dati dall'input, verifica la coerenza del codice fiscale e si occupa di istanziare la classe utente inserendo i dati giusti.


    Inoltre, aggiungo una domanda, una sottoclasse ha senso solo se ha bisogno di ereditare tutti o la maggior parte dei metodi implementati nella classe genitore?
    Una sotto classe eredita tutti i medodi implementati dalla classe genitore.


    Andrea

  10. #10
    Una sotto classe eredita tutti i medodi implementati dalla classe genitore.
    concordo al 100%.. io uso sempre una mia libreria di classi generale, con classi che ereditano da questa principale. Ad esempio la classe principale contiene metodi per l'apertura e la chiusura del database e la sottoclasse ereditando non deve ridefinire tali metodi.
    Non contiamo poi che ora in PHP 5.3 ci sono i namespaces che consentono una più chiara separazione fra classi e i loro scopi

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 © 2024 vBulletin Solutions, Inc. All rights reserved.