Domanda

In precedenza ho utilizzato Singleton per le classi globali, se è assolutamente necessario, ad esempio registrazione, gestione degli errori.Ma ora sto usando i test di unità a cui non piacciono!

Vorrei porre una domanda di base sui globali.Qual è il punto in loro?Cosa c'è di sbagliato nel creare una nuova istanza di una classe quando ne hai bisogno?

È stato utile?

Soluzione

È vero, a volte i single possono creare problemi, che non avrai senza di loro.

Cerco di darti un elenco delle mie opinioni su questo argomento:

  • Il più grave sarebbe che il tuo software ha dipendenze circolari. Se stai lavorando su un'architettura SOA può succedere abbastanza velocemente, se non stai attento.

  • Anche i singoli possono spesso portare a un accoppiamento molto stretto delle tue classi, il che ti rende davvero difficile lavorare come tester.

  • Se lavori su un grande progetto e il modo in cui un'altra classe può ottenere un'istanza delle tue modifiche Singleton, dovrai cambiare molto codice. Questo può accadere anche senza i singleton, ma ho la sensazione che accada più spesso con i singleton.

Ma a volte un singleton è una bella idea e dovresti mantenerla. Anche in AS3 è possibile utilizzare singleton con la famosa soluzione alternativa del costruttore di argomenti di classi private. Come euristico quando non usare i singleton, suggerirei di pensare se la classe ha bisogno di molti riferimenti ad altri singleton. E con un po 'di riflessione puoi anche rendere testabili i tuoi singleton.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top