Domanda

Ehi, Soglia Hi voglio messo sulla creazione di oggetti significa una classe può avere al massimo supporre 4 oggetti non più di quello come raggiungere questo obiettivo?

È stato utile?

Soluzione

Un approccio sta usando una fabbrica di oggetto che crea al massimo 4 istanze. E 'una necessità interessante ... Sarebbe una piscina oggetto servire lo stesso bisogno?

Altri suggerimenti

È possibile contare il numero di istanze create utilizzando una proprietà di classe statica per memorizzare il conteggio. Questo può essere fatto sia nel costruttore della classe o si può fare uso di un modello di fabbrica. E 'un po' difficile rispondere a questa più precisamente senza conoscere la lingua di destinazione.

Provate a modificare il Singleton modello. È possibile utilizzare una variabile di conteggio. Avrete bisogno di mantenere il privato costruttore di avere il controllo della no. di istanze.

Un modo per farlo è il pattern Singleton Design, Ogni volta che facciamo una chiamata per creare un'istanza, controllare il numero dell'istanza che sono già creati, se il conteggio istanza è già raggiunto il 4, quindi utilizzare la stessa istanza per l'applicazione. Per avere un conteggio, Creat static int contatore = 0; e mantenere l'incremento esso per ottenere i risultati.

Il modo più semplice per farlo sarebbe quello di avere un attributo livello di classe chiamata "contare", e nel costruttore, basta assicurarsi che "contano" non è al di sopra di un certo numero.

//pseudocode
class foo
  static count = 0

  def constructor()
    if count < 4
      //create object
    else
      //there are too many!

Questa è breve snippest codice che darà il risultato di cui sopra in C #

sealed class clsInstance
    {
        public static int count = 0;
        private static readonly clsInstance inst = new clsInstance();
        clsInstance()
        {

        }

        public static clsInstance Inst
        {
            get
            {
                if (count < 4)
                {

                    Console.WriteLine("object : " + count);
                    count++;
                    return inst;
                }
                return null;
            }
        }


    }

   class MainClass
   {
       public static void Main(String[] args)
       {
           clsInstance c1 = clsInstance.Inst;
           clsInstance c2 = clsInstance.Inst;
           clsInstance c3 = clsInstance.Inst;
           clsInstance c4 = clsInstance.Inst;
           Console.ReadLine();
           clsInstance c5 = clsInstance.Inst;
           Console.ReadLine();
       }
   }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top