Pregunta

Hola, hola quiero límite puesto en la creación de objetos significa una clase puede tener a lo sumo 4 objetos supongamos que no más que eso cómo lograr esto?

¿Fue útil?

Solución

Un enfoque está utilizando una factoría de objetos que crea en la mayoría de los casos 4. Es una necesidad interesante ... qué un grupo de objetos sirven para la misma necesidad?

Otros consejos

Se puede contar el número de instancias creadas mediante el uso de una propiedad de clase estática para almacenar el recuento. Esto tampoco se puede hacer en el constructor de la clase o se puede hacer uso de un patrón de fábrica. Es un poco difícil responder a esto con más precisión sin conocer el idioma de destino.

Trate de modificar el patrón Singleton. Se puede utilizar una variable de recuento. Tendrá que mantener el constructor privado para tener control sobre el no. de instancias.

Una forma de lograrlo es el patrón de diseño Singleton, Cada vez que hacemos un llamado a crear una instancia, comprobar el recuento de la instancia de la que ya se han creado, si el recuento de instancia ya se alcanzó el 4, a continuación, utilizar la misma instancia de la aplicación. Para tener un recuento, Creat static int contador = 0; y seguir incrementándolo para obtener los resultados.

La forma más sencilla de hacer esto sería tener un atributo de nivel de clase llamada "contar", y en su constructor, sólo asegúrese de que "contar" no está por encima de un determinado número.

//pseudocode
class foo
  static count = 0

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

Este es fragmento de código corto que dará el resultado anterior en 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();
       }
   }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top