Esempio n. 1
0
        public static void Main()
        {
            IFanFactory simpleFactory = new FanFactory();
            IFan        fan           = simpleFactory.CreateFan(FanType.UltraFan);

            fan.SwitchOn();
        }
Esempio n. 2
0
            public void DoWork()
            {
                IFanFactory simpleFactory = new FanFactory();
                // Creation of a Fan using Simple Factory
                IFan fan = simpleFactory.CreateFan(FanType.TableFan);

                // Use created object
                fan.SwitchOn();
            }
Esempio n. 3
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("--------------------------**Factory Method Pattern**--------------------------------");

                var coolingObj = new AirConditioner().ExecuteCreation(TempEnum.Cooling, 22);
                coolingObj.Operate();
                var warmObj = new AirConditioner().ExecuteCreation(TempEnum.Warming, 45);
                warmObj.Operate();

                Console.WriteLine("--------------------------------");
                //factory method
                var coolingObj1 = AirConditioner.InitializeFactories().ExecuteCreation(TempEnum.Cooling, 10);
                coolingObj1.Operate();
                var warmingObj1 = AirConditioner.InitializeFactories().ExecuteCreation(TempEnum.Warming, 50);
                warmingObj1.Operate();

                Console.WriteLine("------------------------------------------------------------------------");

                Console.WriteLine("---------------------------**Simple Factory Pattern**-------------------------------");

                IFanFactory fanFactory = new FanFactory();
                IFan        tableFan   = fanFactory.CreateFan(FanType.TableFan);
                tableFan.SwitchOn();
                tableFan.SwitchOff();
                IFan ceilingFan = fanFactory.CreateFan(FanType.CeilingFan);
                ceilingFan.SwitchOn();
                ceilingFan.SwitchOff();
                Console.WriteLine("------------------------------------------------------------------------");

                Console.WriteLine("---------------------------**Abstract Factory Pattern**-------------------------------");

                IMobilePhone_AbstarctFactory mobilePhone = new Nokia_ConcreteFactory();
                MobileClient mc = new MobileClient(mobilePhone);

                Console.WriteLine("**NOKIA**");
                Console.WriteLine(mc.GetNormalPhoneDetails());
                Console.WriteLine(mc.GetSmartPhoneDetails());

                IMobilePhone_AbstarctFactory mobilePhone1 = new Samsung_ConcreteFactory();
                MobileClient mc1 = new MobileClient(mobilePhone);

                Console.WriteLine("**Samsung**");
                Console.WriteLine(mc1.GetNormalPhoneDetails());
                Console.WriteLine(mc1.GetSmartPhoneDetails());
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Console.ReadLine();
            }
        }
Esempio n. 4
0
        public static void Main()
        {
            FanFactory fanFactory = new FanFactory();
            IFan       ceilingFan = fanFactory.CreateFan(FanType.CeilingFan);
            IFan       tableFan   = fanFactory.CreateFan(FanType.TableFan);

            ceilingFan.SwitchOn();
            tableFan.SwitchOff();

            System.Console.WriteLine(ceilingFan.GetState());
            System.Console.WriteLine(tableFan.GetState());
        }
Esempio n. 5
0
        public static void Run()
        {
            #region Singleton
            Console.WriteLine("-----------Singleton pattern (lazy)-------------");
            var lazySimple = LazySingleton.Instance;
            lazySimple.DoAction();
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine("-----------Singleton pattern (double check)-------------");
            var doubleCheckSingltone = DoubleCheckedLockSingleton.Instance;
            doubleCheckSingltone.DoSomething();
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine("-----------Singleton pattern (static field)-------------");
            var staticField = StaticFieldSingleton.Instance;
            staticField.DoAction();
            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(Environment.NewLine);


            Console.WriteLine("-----------Abstract Factory -------------");
            //создаем клиента фабрики
            // передаеться конкретная реализация фабрики
            var warior = new Hero(new WarriorFactory());
            warior.Hit();
            warior.Run();

            var elf = new Hero(new ElfFactory());
            elf.Hit();
            elf.Run();

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(Environment.NewLine);


            Console.WriteLine("-----------FactoryMethod-------------");
            var   dev    = new PanelDeveloper("some panel name");
            House house1 = dev.Create();


            var dev2   = new WoodDeveloper("wood dev name");
            var house2 = dev2.Create();

            Console.WriteLine(Environment.NewLine);

            Console.WriteLine("-----------Simple factory-------------");
            var fanFactory = new FanFactory();
            fanFactory.CreateFan(FanType.CeilingFan).SwitchOn();
            fanFactory.CreateFan(FanType.TableFan).SwitchOff();
            var exhaustFan = fanFactory.CreateFan(FanType.ExhaustFan);
            exhaustFan.SwitchOn();
            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine("-----------Builder-------------");
            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("-----------Simple Builder-------------");
            var fluentBuilder = new FluentMailMessageBuilder()
                                .To("*****@*****.**", "pasha")
                                .Subject("simple test builder")
                                .From("*****@*****.**", "me")
                                .Build();
            Console.WriteLine(fluentBuilder.Subject);

            MailMessage test = new FluentMailMessageBuilder().To("*****@*****.**", "pasha").Subject("Неявное преобразование");
            Console.WriteLine(test.Subject);

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("-----------Extensions methods Builder-------------");
            MailMessage mailMessage = new MailMessage().From("*****@*****.**", "me").Subject("extension method builder");
            Console.WriteLine(mailMessage.Subject);

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(Environment.NewLine);



            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(Environment.NewLine);
            #endregion
        }