예제 #1
0
        // Constructor de la remera
        // Hace uso de la factoría para obtener (o generar, en caso de que no exista) la parte implícita de
        // los datos de la remera (modelo, talle y color)
        public Remera(string modelo, string talle, string color,          // Datos implícitos
                      int dniComprador, DateTime fechaDeCompra, int edad) // Datos explícitos
        {
            // Instanciamos o referenciamos los datos implícitos a través de la factoría
            this.datosImplicitos = RemeraFactory.GetRemera(modelo, talle, color);

            // Asignamos los datos propios, exclusivos de este objeto
            DniComprador  = dniComprador;
            FechaDeCompra = fechaDeCompra;
            Edad          = edad;
        }
예제 #2
0
        public static ModeloRemera GetRemera(string modelo, string talle, string color)
        {
            ModeloRemera v = null;

            // Si el modelo ya ha sido creado anteriormente, se recupera del pool
            if (pool.ContainsKey(modelo + " " + talle + " " + color))
            {
                v = pool[modelo + " " + talle + " " + color];
                Console.WriteLine("\t* Recuperando del pool la remera " + modelo + " " + talle + " " + color);
            }
            else
            {
                v = new ModeloRemera(modelo, talle, color);
                // Se añade el objeto al pool: las sucesivas llamadas usarán este objeto en lugar de
                // instanciar uno nuevo
                pool.Add(modelo + " " + talle + " " + color, v);
            }

            Console.WriteLine("\t* Insertando en el pool la remera " + modelo + " " + talle + " " + color);

            return(v);
        }