예제 #1
0
        public int adiciona(string pNombre)
        {
            //verificamos si existe
            bool existe = false;

            foreach (IFlyweight f in flyweights)
            {
                if (f.ObtenNombre() == pNombre)
                {
                    existe = true;
                }
            }
            if (existe)
            {
                Console.WriteLine("El objeto ya existe,no se ha adicionado");
                return(-1);
            }
            else
            {
                Creceta miReceta = new Creceta();
                miReceta.ColocarNombre(pNombre);
                flyweights.Add(miReceta);
                conteo = flyweights.Count;

                return(conteo - 1);//devuelvo el indice
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            int i = 0;

            List <int> Americana = new List <int>();
            List <int> Italiana  = new List <int>();
            List <int> Mexicana  = new List <int>();

            List <int> Carnes    = new List <int>();
            List <int> Sopas     = new List <int>();
            List <int> Ensaladas = new List <int>();


            List <int> Rapida = new List <int>();


            CflyweightFactory flywf = new CflyweightFactory();

            i = flywf.adiciona("Hamburguesas");

            Americana.Add(i);
            Carnes.Add(i);
            Rapida.Add(i);

            i = flywf.adiciona("Chicken fingers");
            Americana.Add(i);
            Ensaladas.Add(i);

            i = flywf.adiciona("Sopa de verduras ");
            Italiana.Add(i);
            Sopas.Add(i);

            i = flywf.adiciona("Bruschetta");
            Italiana.Add(i);
            Ensaladas.Add(i);

            i = flywf.adiciona("Tacos al Pastor");
            Mexicana.Add(i);
            Carnes.Add(i);
            Rapida.Add(i);

            i = flywf.adiciona("Tagliatelli");
            Italiana.Add(i);
            Sopas.Add(i);

            i = flywf.adiciona("Pizza");
            Italiana.Add(i);
            Rapida.Add(i);

            Console.WriteLine("------------");
            foreach (int n in Rapida)
            {
                Creceta receta = (Creceta)flywf[n];
                receta.CalcularCosto(); //estado extrinseco, no se encuentra de manera natural en el objeto
                receta.Mostrar();       //estado intrinseco, comun a todos los objetos iguales
            }
            Console.WriteLine("------------");

            Console.WriteLine("---No se muestra el estado extrinseco aqui debajo-----");
            foreach (int n in Americana)
            {
                Creceta receta = (Creceta)flywf[n];
                //   receta.CalcularCosto();
                receta.Mostrar(); //estado intrinseco, comun a todos los objetos iguales
            }
            Console.WriteLine("------------");

            Console.WriteLine("---este objeto ya lo incluimos en el Factory----");
            i = flywf.adiciona("Pizza");
            Console.WriteLine("------------");

            Console.WriteLine("---MOSTRAMOS TODAS LAS RECETAS----");

            int M = 0;

            for (int m = 0; m < flywf.Conteo; m++)
            {
                Creceta receta = (Creceta)flywf[m];
                receta.Mostrar();
            }

            Console.ReadLine();
        }