public static void Main() { IFanFactory simpleFactory = new FanFactory(); IFan fan = simpleFactory.CreateFan(FanType.UltraFan); fan.SwitchOn(); }
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(); }
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(); } }
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()); }
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 }