Esempio n. 1
0
        public static void UseFactoryMethodPattern(IView view)
        {
            PizzaStore nyStore = new NYStylePizzaStore(view);

            view.DisplayMessage("Orderring a NY cheese pizza: ");
            Pizza nyCheesePizza = nyStore.OrderPizza("cheese");

            view.DisplayMessage($"{nyCheesePizza.GetName()} is ready");

            view.DisplayMessage(string.Empty);

            view.DisplayMessage("Orderring a NY pepperoni pizza: ");
            Pizza nyPepperoniPizza = nyStore.OrderPizza("pepperoni");

            view.DisplayMessage($"{nyPepperoniPizza.GetName()} is ready");

            view.DisplayMessage(string.Empty);

            PizzaStore chicagoStore = new ChicagoStylePizzaStore(view);

            view.DisplayMessage("Orderring a Chicago veggie pizza: ");
            Pizza chicagoCheesePizza = chicagoStore.OrderPizza("veggie");

            view.DisplayMessage($"{chicagoCheesePizza.GetName()} is ready");
        }
        public void CreateNYStyleCheesePizza()
        {
            PizzaStore NYStore = new NYStylePizzaStore();
            Pizza      pizza   = NYStore.OrderPizza("cheese", Size.Large);

            Assert.AreEqual("NYStyle cheese", pizza.Name);
            Assert.AreEqual(Size.Large, pizza.Size);
        }
Esempio n. 3
0
        public static void OpenShop()
        {
            Tools.ColorfulWriteLine("Pizza Shop is open for business! Our recipes are home-brewed " +
                                    "by pizza artisans.\n", ConsoleColor.Blue);
            Tools.ColorfulWriteLine("What is your name?", ConsoleColor.Blue);
            string name = Console.ReadLine();

            bool orderPizza = true;

            while (orderPizza)
            {
                Tools.ColorfulWriteLine($"Hey {name}, would you like to eat in our New York or Chicago location? NY | Chicago", ConsoleColor.Blue);
                string location = null;
                while (location == null)
                {
                    string input = Console.ReadLine().ToLower();
                    if (input == "ny")
                    {
                        location = "ny";
                    }
                    else if (input == "chicago")
                    {
                        location = "chicago";
                    }
                    else
                    {
                        Tools.ColorfulWriteLine("You entered an invalid location, please choose either NY or Chicago", ConsoleColor.Red);
                    }
                }
                if (location == "ny")
                {
                    NYStylePizzaStore nyStore = new NYStylePizzaStore();
                    Tools.ColorfulWriteLine("Thank you for choosing our NY location. What kind of " +
                                            "pizza would you like to order? Cheese | Clam | Pepperoni | Veggie", ConsoleColor.Blue);
                    string input = Console.ReadLine().ToLower();
                    Enum.TryParse(input, out PizzaTypes order); // This tries to parse the input and output it as the out variable as enum
                    Pizza pizza = nyStore.orderPizza(order);
                    Tools.ColorfulWriteLine($"{name} ordered a {pizza.getName()}\n", ConsoleColor.Green);
                }
                else if (location == "chicago")
                {
                    ChicagoStylePizzaStore chicagoStore = new ChicagoStylePizzaStore();
                    Tools.ColorfulWriteLine("Thank you for choosing our Chicago location. What kind of " +
                                            "pizza would you like to order? Cheese | Clam | Pepperoni | Veggie", ConsoleColor.Blue);
                    string input = Console.ReadLine().ToLower();
                    Enum.TryParse(input, out PizzaTypes order);
                    Pizza pizza = chicagoStore.orderPizza(order);
                    Tools.ColorfulWriteLine($"{name} ordered a {pizza.getName()}\n", ConsoleColor.Green);
                }
                Tools.ColorfulWriteLine("Would you like to order again? Y | N", ConsoleColor.Blue);
                string shopAgain = Console.ReadLine().ToLower();
                if (shopAgain != "y")
                {
                    orderPizza = false;
                }
                Tools.ColorfulWriteLine("Thank you for shopping with us!", ConsoleColor.Yellow);
            }
        }
Esempio n. 4
0
        // Это фабричный метод!!!
        // Создает наследование
        // Здесь нужно расширять класс и переопределять фабричный методы (методы), который создает объекты
        // Вся суть этого паттерна заключается в использовании субкласса, который за нас создает объекты.
        // Клиенты достаточно знать абстрактный тип, который они используют, а суб класс имеет дело с различными конкретными типами!
        static void Main(string[] args)
        {
            PizzaStore nyPizzaStore      = new NYStylePizzaStore();
            PizzaStore ChicagoPizzaStore = new ChicagoStylePizzaStore();

            Pizza pizza = nyPizzaStore.OrderPizza("cheese");

            pizza = ChicagoPizzaStore.OrderPizza("clam");
        }
Esempio n. 5
0
        /// <summary>
        /// O padrão Factory Method define uma interface para criar um objeto, mas permite às classes decidir qual classe instanciar.
        /// Ele permite a uma classe deferir a instanciação para subclasses.
        /// </summary>
        private static void TestFactory()
        {
            PizzaStore nyStore      = new NYStylePizzaStore();
            PizzaStore chicagoStore = new ChicagoStylePizzaStore();

            nyStore.OrderPizza(PizzaType.Cheese);
            Console.WriteLine();

            chicagoStore.OrderPizza(PizzaType.Cheese);
        }
        public static void Start()
        {
            PizzaStore nyStore      = new NYStylePizzaStore();
            PizzaStore chicagoStore = new ChicagoStylePizzaStore();

            Pizza pizza = nyStore.OrderPizza("cheese");

            Console.WriteLine("Ethan ordered a " + pizza.Name + "\n");

            pizza = chicagoStore.OrderPizza("cheese");

            Console.WriteLine("Joel ordered a " + pizza.Name + "\n");
        }
        static void Main(string[] args)
        {
            var nyStore      = new NYStylePizzaStore();
            var chicagoStore = new ChicagoStylePizzaStore();

            Pizza pizza;

            pizza = nyStore.OrderPizza("cheese");
            Console.WriteLine("Ethan ordered a " + pizza.Name + Environment.NewLine);

            pizza = chicagoStore.OrderPizza("cheese");
            Console.WriteLine("Joel ordered a " + pizza.Name + Environment.NewLine);
        }
Esempio n. 8
0
        static void Main(string[] args)
        {
            PizzaStore store = new NYStylePizzaStore();

            store.OrderPizza("cheese");
            Console.WriteLine();
            store.OrderPizza("pepperony");
            Console.WriteLine();

            store = new ChicagoStylePizzaStore();
            store.OrderPizza("cheese");
            Console.WriteLine();
            store.OrderPizza("pepperony");
            Console.ReadLine();
        }
Esempio n. 9
0
        static void Main(string[] args)
        {
            var newYorkStylePizzaStore = new NYStylePizzaStore();

            newYorkStylePizzaStore.OrderPizza("cheese");
            Console.WriteLine();
            newYorkStylePizzaStore.OrderPizza("clam");
            Console.WriteLine();

            var chicagoStylePizzaStore = new ChicagoStylePizzaStore();

            chicagoStylePizzaStore.OrderPizza("cheese");
            Console.WriteLine();
            chicagoStylePizzaStore.OrderPizza("clam");
            Console.ReadLine();
        }
Esempio n. 10
0
        private void FactoryTest_Click(object sender, RoutedEventArgs e)
        {
            var nyPizzaIngredientFactory = new NYPizzaIngredientFactory();
            var nyPizzaStore             = new NYStylePizzaStore(nyPizzaIngredientFactory);
            var chicagopizzaStore        = new ChicagoStylePizzaStore(nyPizzaIngredientFactory);

            Console.WriteLine();
            var pizza1 = nyPizzaStore.OrderPizza("cheese");

            Console.WriteLine($"1つ目の注文は {pizza1.Name} です");

            Console.WriteLine();
            var pizza2 = chicagopizzaStore.OrderPizza("cheese");

            Console.WriteLine($"2つ目の注文は {pizza2.Name} です");
        }
Esempio n. 11
0
        static void Main(string[] args)
        {
            var chicagoPizzaStore = new ChicagoStylePizzaStore();
            var newYorkPizzaStore = new NYStylePizzaStore();

            WriteLine("Chicago pizza ordered");
            chicagoPizzaStore.OrderPizza(PizzaTypesEn.Cheese);
            WriteLine();
            WriteLine();

            WriteLine("NY pizza ordered");
            newYorkPizzaStore.OrderPizza(PizzaTypesEn.Cheese);
            WriteLine();
            WriteLine();

            WriteLine("Chicago pizza ordered");
            chicagoPizzaStore.OrderPizza(PizzaTypesEn.Clam);
            WriteLine();
            WriteLine();

            WriteLine("NY pizza ordered");
            newYorkPizzaStore.OrderPizza(PizzaTypesEn.Clam);
            WriteLine();
            WriteLine();

            WriteLine("Chicago pizza ordered");
            chicagoPizzaStore.OrderPizza(PizzaTypesEn.Veggie);
            WriteLine();
            WriteLine();

            WriteLine("NY pizza ordered");
            newYorkPizzaStore.OrderPizza(PizzaTypesEn.Veggie);
            WriteLine();
            WriteLine();

            WriteLine("Chicago pizza ordered");
            chicagoPizzaStore.OrderPizza(PizzaTypesEn.Pepperoni);
            WriteLine();
            WriteLine();

            WriteLine("NY pizza ordered");
            newYorkPizzaStore.OrderPizza(PizzaTypesEn.Pepperoni);
            WriteLine();
            WriteLine();
        }
        public static void Run()
        {
            PizzaStore nyStore = new NYStylePizzaStore();

            Pizza pizza = nyStore.OrderPizza("cheese");

            Console.WriteLine("Ethan ordered a " + pizza.Name + "\n\n");


            PizzaStore chicagoStore = new ChicagoStylePizzaStore();

            pizza = chicagoStore.OrderPizza("pepperoni");
            Console.WriteLine("Ethan ordered a " + pizza.Name);

            //PizzaStore depStore = new DependentPizzaStore("Chicago");

            //pizza = depStore.OrderPizza("cheese");
            //Console.WriteLine("Ethan ordered a " + pizza.Name);
        }
Esempio n. 13
0
        public static void Main(string[] args)
        {
            // Here I am declaring both of my Pizza Store to order same type of pizza for both of the store.
            PizzaStore NYPizzaStore      = new NYStylePizzaStore();
            PizzaStore ChicagoPizzaStore = new ChicagoStylePizzaStore();

            Console.WriteLine("Welcome to my Pizza Store!");
            Console.WriteLine("Please enter your pizza type from");
            Console.WriteLine("(Cheese)(Clam)");
            var pizzaType = Console.ReadLine();

            // Now NY Pizza Store is prepare my order.
            var NYPizza = NYPizzaStore.OrderPizza(pizzaType);

            // Here I am returning my pizza that I have received from NY Pizza Store.
            if (NYPizza != null)
            {
                Console.WriteLine("Thank for Ordering " + NYPizza.GetType() + " please collect your order from front desk in 15 min");
            }
            else
            {
                Console.WriteLine("We are sorry to serve you today. Facing issue with the system.");
            }

            // Now Chicago Pizza Store is prepare my order.
            var ChicagoPizza = ChicagoPizzaStore.OrderPizza(pizzaType);

            // Here I am returning my pizza that I have received from NY Pizza Store.
            if (ChicagoPizza != null)
            {
                Console.WriteLine("Thank for Ordering " + ChicagoPizza.GetType() + " please collect your order from front desk in 15 min");
            }
            else
            {
                Console.WriteLine("We are sorry to serve you today. Facing issue with the system.");
            }
        }