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

    Classe Singleton Enorme

    Salve, sarò breve, lasciando perdere tutti i commenti sul Singleton (anti-pattern ecc.) per quanto giusti siano, la mia domanda è: come evitare che una classe singleton diventi troppo grande? Si da' per esempio il caso che io ho una classe singleton con 60 funzioni, molte di queste in realtà si potrebbero benissimo mettere in altre classi "apposite", il punto è che, considerando che voglio permettere un unico punto d'accesso alla istanza (singleton docet) ma voglio evitare di creare una classe enorme, come posso fare?
    Ultima modifica di Markus Holiday; 13-12-2019 a 18:47

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Puoi usare altre classi dentro al singleton (magari anche quelle singleton) o spostare dei metodi dentro a dei traits che poi userai all'interno del tuo singleton. Dipende anche un po' dalla situazione specifica, ma i metodi ci sono.

  3. #3
    Spostare dei metodi dentro a dei traits è interessantissimo, purtroppo sono un neofita e non avevo minimamente pensato ad una soluzione del genere. Comunque sia mi chiedevo: come uso altre classi dentro al singleton avendo però sempre un unico punto d'accesso? Mi rendo conto che potrebbe essere una cosa poco fattibile. Avevo effettivamente pensato di fare un altra classe sempre singleton che istanziavo sempre dal singleton principale tramite include/require ma così non dovrebbe rimanere comunque indipendente? Mi spiego meglio, il singleton principale si trova nel file a.php dove viene istanziato, dentro a questo singleton includo il file b.php dove a sua volta contiene la sua classe singleton che istanzierà. Ma così tecnicamente posso anche evitare di chiamare a.php dove si trova singleton principale, mi basterà chiamare il file b.php (che contiene già di suo la sua classe singleton che istanzierà). L'idea sarebbe proprio di evitare questo, e cioè vorrei che tutte le altre classi devono essere dipendenti dal singleton principale. Ma non so come fare.

Tag per questa discussione

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.