Question

hey, salut je veux mettre limite sur la création d'objet signifie une classe peut avoir au plus 4 objets suppose pas plus que ça comment y parvenir?

Était-ce utile?

La solution

Une approche utilise une usine d'objet qui crée dans la plupart des cas 4. Il est un besoin intéressant ... un pool d'objets servirais le même besoin?

Autres conseils

Vous pouvez compter le nombre d'instances créées en utilisant une propriété de classe statique pour stocker le nombre. Cela peut être fait dans le constructeur de la classe ou vous pouvez utiliser un modèle d'usine. Il est un peu difficile de répondre à cette plus précisément sans connaître la langue cible.

Essayez de modifier le Singleton motif . Vous pouvez utiliser une variable de comptage. Vous aurez besoin de garder le privé Constructor pour avoir le contrôle sur le non. des cas.

Une façon d'atteindre est le modèle de conception Singleton, Chaque fois que nous faisons un appel à créer une instance, vérifier le nombre de l'instance qui sont déjà créés, si le nombre d'instance est déjà atteint 4, puis utilisez la même instance pour votre application. Avoir un compte, Creat Int statique compteur = 0; et garder incrémenter pour obtenir les résultats.

La façon la plus simple de le faire serait d'avoir un attribut de niveau de classe appelée « compte », et dans votre constructeur, assurez-vous que « compte » ne dépasse pas un certain nombre.

//pseudocode
class foo
  static count = 0

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

est court extrait de code qui donnera le résultat ci-dessus 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();
       }
   }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top