Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767

    MVC come gestire l'estensione della classe per il model?

    Ciao a tutti!
    Sto facendo una grande confusione e ho bisogno del vostro aiuto!

    Nei model della mia applicazione vorrei poter estendere un generica classe di connessione al db così da poter aggiungere le funzioni specifiche per quel model.
    Inizialmente pensavo di usare un singleton pattern, ma se estendo la classe che succede? L'oggetto che istanzio non può più essere lo stesso (visto che viene da una classe diverse).

    Che strategia mi conviene adottare?

  2. #2

    Re: MVC come gestire l'estensione della classe per il model?

    Originariamente inviato da Luke70
    Inizialmente pensavo di usare un singleton pattern, ma se estendo la classe che succede? L'oggetto che istanzio non può più essere lo stesso (visto che viene da una classe diverse).
    Che significa "non può essere lo stesso"? Cosa intendi?
    Perchè estendere una classe significa, più o meno, specializzarla...

    Animali
    Gatto estende Animali

    Gatto è un sottoinsieme di Animali, quindi è sì una classe diversa, ma ha moltissime affinità con Animali.
    new Gatto, tranne rimescolamenti assurdi, eredita la maggior parte di metodi e variabili di Animali, quindi se Animali ha il metodo "cammina", anche Gatto ce l'ha, senza bisogno di ricrearlo (in generale, ovvio che poi si può rimodellare) quindi fondamentalmente Gatto si comporta come Animali, tranne magari per il fatto che Gatto ha il metodo miagola (che è suo specifico).

    Spero di averti aiutato un pochino.


  3. #3
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    Luke70, stai facendo un errore abbastanza comune.
    Suppongo che nella super classe, tu abbia nel singleton "new self". Self si riferisce alla classe dove è stata dichiarata la keyword, non è utilizzata in un contesto ereditario!
    Hanno risolto in php 5.3 con il late static binding, "new static"

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Grazie a entrambi per l'aiuto.
    Io sono ben più indietro delle ipotesi di Laxus: sto ancora decidendo quale via scegliere.

    Vorrei creare un oggetto che mi gestisce le connessioni al db e che devo istanziare all'inizio del mio programma per tutta la parte di gestione utente, caricamento delle impostazioni generali del sistema...

    Poi però, vorrei trattare i modelli del mio mvc come delle estensioni della classe da cui genero il mio "oggetto database".

    Mi chiedo: se l'oggetto è un singleton, come si comportano gli oggetti che derivano da classi che estendono la sua: sono lo stesso oggetto con proprietà in più? Mi sembrerebbe strano anche se mi piacerebbe molto.

    Se così non fosse come posso gestire i modelli come oggetti che estendono la "classe database" senza generare tanti oggetti e quindi tante connessioni diverse al db?

    Su queste cose ho una grande confusione e quindi ringrazio fin d'ora chi può darmi una mano a chiarirmi le idee!

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.