private static void Main(string[] args) { //AbstractFactory //Provide an interface for creating related objects without specifying their concrete classes. AfricaFactory africa = new AfricaFactory(); AnimalWorld world = new AnimalWorld(africa); world.RunFoodChain(); AmericaFactory america = new AmericaFactory(); world = new AnimalWorld(america); world.RunFoodChain(); Console.WriteLine("\n"); //============================================================================================================================================================= //Singleton //Ensure a class has only one instance and provide a global point of access to it. Singleton fromPrincipal = Singleton.GetInstance; fromPrincipal.PrintDetails("From Principal"); Singleton fromTeachaer = Singleton.GetInstance; fromTeachaer.PrintDetails("From Teacher"); Singleton fromStudent = Singleton.GetInstance; fromStudent.PrintDetails("From Student"); Singleton oSingleton_1 = new Singleton(); Singleton oSingleton_2 = new Singleton(); Console.WriteLine("\n"); //============================================================================================================================================================= //ProtoType //The intent behind the usage of a Prototype pattern is for creation of an object clone; //in other words it allows us to create a new instance by copying existing instances. var dev = new Developer { FirstName = "Gary", Lastname = "Woodfine", Skills = new List <string> { "C#", "PHP", "SQL", "JavaScript" } }; var dev2 = dev.Clone() as Developer; Console.WriteLine($"The Cloned Developer name is { dev2.FirstName } { dev2.Lastname }"); Console.WriteLine("The second developer has the following skills: "); foreach (var skill in dev2.Skills) { Console.WriteLine(skill); } Console.WriteLine("\n"); //============================================================================================================================================================= // Facade //Provide a unified interface to a set of interfaces in a subsystem. Façade defines a higher-level interface that makes the subsystem easier to use. Order order = new Order(); order.PlaceOrder(); Console.WriteLine("\n"); //============================================================================================================================================================== // Builder //Builder is a creational design pattern that lets you construct complex objects step by step. Beverage beverage; BeverageDirector beverageDirector = new BeverageDirector(); TeaBuider tea = new TeaBuider(); beverage = beverageDirector.MakeBeverage(tea); Console.WriteLine(beverage.ShowBeverage()); CoffeeBuilder coffee = new CoffeeBuilder(); beverage = beverageDirector.MakeBeverage(coffee); Console.WriteLine(beverage.ShowBeverage()); Console.Read(); }
static void Main(string[] args) { #region Sample1 /* MealBuilder mealBuilder = new MealBuilder(); * * Meal vegMeal = mealBuilder.PrepareVegMeal(); * Console.WriteLine("Veg Meal"); * vegMeal.showItems(); * Console.WriteLine("Total Cost: " + vegMeal.GetCost()); * * Meal nonVegMeal = mealBuilder.PrepareNonVegMeal(); * Console.WriteLine("\nNon-Veg Meal"); * nonVegMeal.showItems(); * Console.WriteLine("Total Cost: " + nonVegMeal.GetCost()); */ #endregion #region Sample2 /*Waiter waiter = new Waiter(); * PizzaBuilder hawaiianPizzabuilder = new HawaiianPizzaBuilder(); * waiter.SetPizzaBuilder(hawaiianPizzabuilder); * waiter.ConstructPizza(); * * PizzaBuilder spicyPizzaBuilder = new SpicyPizzaBuilder(); * waiter.SetPizzaBuilder(spicyPizzaBuilder); * waiter.ConstructPizza(); * * Pizza pizza = waiter.GetPizza(); */ #endregion #region Sample3 /* VehicleBuilder builder; * * // Create shop with vehicle builders * Shop shop = new Shop(); * * // Construct and display vehicles * builder = new ScooterBuilder(); * shop.Construct(builder); * builder.Vehicle.Show(); * builder = new CarBuilder(); * shop.Construct(builder); * * builder.Vehicle.Show(); * builder = new MotorCycleBuilder(); * * shop.Construct(builder); * builder.Vehicle.Show(); */ #endregion #region Sample4 /* Console.WriteLine("***Builder Pattern Demo***"); * Director director = new Director(); * * IBuilder b1 = new Car("Ford"); * IBuilder b2 = new MotorCycle("Honda"); * * // Making Car * director.Construct(b1); * Product p1 = b1.GetVehicle(); * p1.Show(); * * //Making MotorCycle * director.Construct(b2); * Product p2 = b2.GetVehicle(); * p2.Show(); */ #endregion #region Sample5 /* Report report; * ReportDirector reportDirector = new ReportDirector(); * // Construct and display Reports * report = reportDirector.MakeReport(new PDFReport()); * report.DisplayReport(); * Console.WriteLine("-------------------"); * * report = reportDirector.MakeReport(new ExcelReport()); * report.DisplayReport(); */ #endregion #region Sample6 /* var director = new DirectorNew(); * * var builder = new CarNewBuilder(); * director.ConstructSportsCar(builder); * var car = builder.GetProduct(); * car.GetResult(); * * System.Console.WriteLine("*********************************"); * * var manualBuilder = new CarManualBuilder(); * director.ConstructCityCar(manualBuilder); * var manual = manualBuilder.GetProduct(); * manual.GetResult(); * System.Console.WriteLine("-------------------------------"); * System.Console.WriteLine(manual.Print()); */ #endregion #region Sample7 /* var localGameBuilder = new LocalGameBuilder() * .AiStrength(20) * .BoardSize(10) * .Level(2) * .Present() * .Build(); * * var onlineGameBuilder = new OnlineGameBuilder() * .ServerUrl("http://myGame.ca/") * .BoardSize(20) * .Level(5) * .Present() * .Build(); */ #endregion #region Sample8 /* var builder = new ProductStockReportBuilder( * new System.Collections.Generic.List<ProductNew> { * new ProductNew { Name = "Monitor", Price = 200.50 }, * new ProductNew { Name = "Mouse", Price = 20.41 }, * new ProductNew { Name = "Keyboard", Price = 30.15} * }); * var ProductStockReportDirector = new ProductStockReportDirector(builder); * * ProductStockReportDirector.BuildStockReport(); * var report = builder.GetReport(); * * Console.WriteLine(report); */ #endregion #region Sample9 /* Window window = new WindowBuilder() * .Width(800) * .Height(400) * .Build(); * * Console.WriteLine(); * Console.WriteLine("-----------"); * * Dialog dialog = new DialogBuilder() * .Width(500) * .Message("Hello") * .Height(400) * .Build(); */ #endregion #region Sample10 /* OrderBuilder builder = new OrderBuilder(); * * OrderedItems orderedItems = builder.PreparePizza(); * * orderedItems.ShowItems(); * * Console.WriteLine("\n"); * Console.WriteLine("Total Cost : " + orderedItems.GetCost()); */ #endregion #region Sample11 /* CDBuilder cdBuilder = new CDBuilder(); * CDType cdType1 = cdBuilder.BuildSonyCD(); * cdType1.ShowItems(); * * CDType cdType2 = cdBuilder.BuildSamsungCD(); * cdType2.ShowItems(); */ #endregion #region Sample12 var beverageDirector = new BeverageDirector(); var tea = new TeaBuider(); var beverage = beverageDirector.MakeBeverage(tea); Console.WriteLine(beverage.ShowBeverage()); var coffee = new CoffeeBuilder(); beverage = beverageDirector.MakeBeverage(coffee); Console.WriteLine(beverage.ShowBeverage()); #endregion Console.ReadKey(); }