Exemplo n.º 1
0
        public void Test()
        {
            // Pobranie fabryki rozmiarów
            BoxDimensionFactory boxDimFac = BoxDimensionFactory.getInstance();

            // na jakie pudełka jest teraz zapotrzebowanie
            int[] potrzebne = { 10, 10, 10, 20, 30, 45,  20, 20, 20, 20, 10,
                                20, 50, 65, 50, 50, 60, 100, 50, 50, 50, };

            // Kolejne pudełka tworzymy na podstawie rozmiarów
            // uzyskanych z fabryki rozmiarów
            // nie wiemy i nie interesuje nas czy rozmiary to nowe obiekty
            // czy też już używane przez inne pudełka
            Box box = null;

            for (int i = 0; i < potrzebne.Length; i++)
            {
                box = new Box(boxDimFac.makeDimension(potrzebne[i]), "Kwiaty");
            }

            Console.WriteLine("Ostatnie pudełko");
            Console.WriteLine(box.ToString());
            Console.WriteLine("Na " + potrzebne.Length + " rozmiarów pudełek\n" +
                              "Utworzono nowych " + (potrzebne.Length - boxDimFac.reusedCount()) +
                              "\nPonownie użyto (przy wspóldzieleniu) " + boxDimFac.reusedCount()
                              );
        }
 // --- metoda zwracająca fabrykę
 public static BoxDimensionFactory getInstance()
 {
     if (bdf == null)
     {
         bdf = new BoxDimensionFactory();              // jeżeli obiekt nie istnieje -stwórz
     }
     return(bdf);                                      // zwróć jedyny obiekt klasy
 }