示例#1
0
        //https://www.codeproject.com/Articles/1131770/Factory-Patterns-Simple-Factory-Pattern
        static void Main()
        {
            IFanFactory simpleFanFactory = new FanFactory();
            IFan        fan = simpleFanFactory.CreateFan(FanType.TableFan);

            fan.SwitchOn();
            fan.SwitchOff();
        }
        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();
            }
        }
示例#3
0
        static void Main(string[] args)
        {
            FanFactory fanFactory = new FanFactory();
            IFan       ceilingFan = fanFactory.CreateFan(FanType.CeilingFan);
            IFan       tableFan   = fanFactory.CreateFan(FanType.TableFan);

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

            Console.WriteLine(ceilingFan.GetState());
            Console.WriteLine(tableFan.GetState());
        }
示例#4
0
        //https://www.codeproject.com/Articles/1135918/Factory-Patterns-Factory-Method-Pattern

        static void Main()
        {
            IFanFactory tableFanFactory = new TableFanFactory();
            IFan        tableFan        = tableFanFactory.CreateFan();

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

            IFanFactory ceilingFanFactory = new CeilingFanFactory();;
            IFan        ceilingFan        = ceilingFanFactory.CreateFan();

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

            IFanFactory exhaustFanFactory = new ExhaustFanFactory();;
            IFan        exhaustFan        = exhaustFanFactory.CreateFan();

            exhaustFan.SwitchOn();
            exhaustFan.SwitchOff();
        }
示例#5
0
        static void Main()
        {
            USElecticalFactory uSElecticalFactory = new USElecticalFactory();
            IFan fan = uSElecticalFactory.GetFan();

            fan.SwitchOn();
            fan.SwitchOff();
            ITubelight tubelight = uSElecticalFactory.GetTubelight();

            tubelight.SwitchOn();
            tubelight.SwitchOff();

            IndianElecticalFactory indianElecticalFactory = new IndianElecticalFactory();
            IFan fan2 = indianElecticalFactory.GetFan();

            fan2.SwitchOn();
            fan2.SwitchOff();
            ITubelight tubelight2 = indianElecticalFactory.GetTubelight();

            tubelight2.SwitchOn();
            tubelight2.SwitchOff();
        }