static void Main(string[] args) { // Реализация паттерна Singleton Phone phone = new Phone(); phone.Launch("Android 12.0"); Console.WriteLine(phone.OperatingSystem.Name); phone.OperatingSystem = OperatingSystem.getOperatingSystem("IOS 9.0"); Console.WriteLine(phone.OperatingSystem.Name); Console.ReadKey(); // Реализация паттерна Factory Method Developer developer = new CSharpDeveloper("C# разработчик"); Application applicationCSharp = developer.Create(); developer = new JavaDeveloper("Java разработчик"); Application applicationJava = developer.Create(); developer = new PythonDeveloper("Python разработчик"); Application applicationPython = developer.Create(); Console.ReadKey(); // Реализация паттерна Strategy Controller controller = new Controller(new AdoProductRepository()); controller.Index(); controller._repository = new EFProductRepository(); controller.Index(); controller._repository = new DataClientProductRepository(); controller.Index(); Console.ReadKey(); // Реализация паттерна Template Method var meatPie = new MeatPie(); var cherryPie = new CherryPie(); Console.WriteLine(meatPie); meatPie.Cook(); Console.WriteLine(cherryPie); cherryPie.Cook(); Console.ReadLine(); // Реализация паттерна Chain of responsibility Receiver receiver = new Receiver(false, true, true); PaymentHandler bankPaymentHandler = new BankPaymentHandler(); PaymentHandler moneyPaymentHadler = new MoneyPaymentHandler(); PaymentHandler paypalPaymentHandler = new PayPalPaymentHandler(); bankPaymentHandler.Successor = paypalPaymentHandler; paypalPaymentHandler.Successor = moneyPaymentHadler; bankPaymentHandler.Handle(receiver); Console.ReadLine(); }