static void RunAbstractFactoryWithOCP() { HotDrinkMachineOCP machine = new HotDrinkMachineOCP(); IHotDrink hotDrink = machine.MakeDrink(); hotDrink.Consume(); }
void main() { var HotDrinkMachine = new HotDrinkMachine(); IHotDrink mydrink = HotDrinkMachine.MakeDrink(0, 100); mydrink.Consume(); }
public AbstractFactoryDemo2() { var machine = new HotDrinkMachine(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); }
public IHotDrink CreateDrink() { IHotDrink Coffee = DrinkFactory.CreateHotDrink(Program.AvailableDrink.Coffee); Console.WriteLine("----------------------------------------------------"); Console.WriteLine("Do you want milk in your drink? "); Console.WriteLine("----------------------------------------------------"); Console.WriteLine("1.Yes\n2.No "); Console.WriteLine("----------------------------------------------------"); Console.Write("please input your answer: "); string answer = Console.ReadLine().ToLower(); bool confirmed = Coffee.ConfirmPayment(Coffee); if (confirmed) { if (answer.Equals("yes")) { IHotDrink coffeeWithMilk = new MilkyDrinkDecorator(Coffee); coffeeWithMilk.Prepare(); } else { Coffee.Prepare(); } } else { Console.Clear(); Console.WriteLine("Incorrect payment, try again."); } Console.Clear(); return(Coffee); }
public static void Run() { var machine = new HotDrinkMachine(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); }
static void RunAbstractFactory() { HotDrinkMachine machine = new HotDrinkMachine(); IHotDrink drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 100); drink.Consume(); }
public void Init() { var machine = new HotDrinkMachine(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); }
static void Main(string[] args) { var machine = new HotDrinkMachine(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); }
static void Main(string[] args) { var machine = new HotDrinkMachine(); //var drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 300); //drink.Consume(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); }
public static void AbstractClass() { var machine = new HotDrinkMachine(); //var drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 300); //drink.Consume(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); }
public static void CreateFactory() { var machine = new HotDrinkMachine(); //var drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 300); //drink.Consume(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); }
public void PrintPaymentDetails(IHotDrink drink) { Console.Clear(); Console.WriteLine("----------------------------------------------------"); Console.WriteLine("Your drink details are below :"); Console.WriteLine("Drink Type: {0}\nDrink Size: {1}\nDrink Price: {2} DKK", drink.GetDrinkName, drink.GetDrinkSize, drink.GetDrinkPrice); Console.WriteLine("----------------------------------------------------"); Console.WriteLine("To pay for the drink please insert coins."); Console.WriteLine("----------------------------------------------------"); Console.Write("Insert Coin:"); }
public void PrintPaymentDetails(IHotDrink drink) { Console.Clear(); Console.WriteLine("----------------------------------------------------"); Console.WriteLine("Your drink details are below :"); Console.WriteLine("Drink Type: {0}\nDrink Size: {1}\nDrink Price: {2} DKK", drink.GetDrinkName, drink.GetDrinkSize, drink.GetDrinkPrice); Console.WriteLine("----------------------------------------------------"); Console.WriteLine("To pay for the drink you need to transfer money to MobilePay acount - 123456"); Console.WriteLine("----------------------------------------------------"); Console.Write("Enter transaction id to confirm your payment:"); }
public static void Start() { var machine = new HotDrinkMachine(); //// first version //var drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 300); //drink.Consume(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); }
static void Main(string[] args) { var machine = new HotDrinkMachine(); //var drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 300); //drink.Consume(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); Console.WriteLine("Hello World!"); Console.ReadKey(); }
static void Main(string[] args) { var machine = new HotDrinkMachine(); //Calls for commented code //var drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 2); //drink.Consume(); //var secondDrink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Coffee, 5); //secondDrink.Consume(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); }
// Use this for initialization void Start() { HotDrinkMachine machine = new HotDrinkMachine(); IHotDrink drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 120); IHotDrink drink2 = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Coffee, 500); drink.Consume(); drink2.Consume(); Debug.Log(Enum.GetName(typeof(HotDrinkMachine.AvailableDrink), 0)); Debug.Log(Enum.GetName(typeof(HotDrinkMachine.AvailableDrink), 1)); }
static void Main(string[] args) { //Calling Abstract Factory Class In main var machine = new HotDrinkMachine(); //var drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 300); //drink.Consume(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); //var pointCartesian = Point.Factory.NewCartesianPoint(2.0, 3.0); //var pointPolar = Point.Factory.NewPolarPoint(1.0, Math.PI / 2); //Console.WriteLine(pointPolar); }
static void Main(string[] args) { // // approch 1 use //HotDrinkMachine hotDrinkMachine = new HotDrinkMachine(); //var coffee = hotDrinkMachine.MakeDrink(HotDrinkMachine.AvaliableDrink.Coffee, 500); //coffee.Consume(); // // approach 2 HotDrinkMachine hotDrinkMachine = new HotDrinkMachine(); IHotDrink hotDrink = hotDrinkMachine.MakeDrink(); hotDrink.Consume(); Console.WriteLine("Hello World!"); }
public IHotDrink CreateDrink() { IHotDrink Latte = DrinkFactory.CreateHotDrink(Program.AvailableDrink.Latte); bool confirmed = Latte.ConfirmPayment(Latte); if (confirmed) { Latte.Prepare(); } else { Console.Clear(); Console.WriteLine("Incorrect payment, try again."); } Console.Clear(); return(Latte); }
static void Main(string[] args) { //var p1 = new Point(2, 3, Point.CoordinateSystem.Cartesian); //var origin = Point.Origin; //var p2 = Point.Factory.NewCartesianPoint(1, 2); // ABSTRACT FACTORY var machine = new HotDrinkMachine(); //var drink = machine.MakeDrink(HotDrinkMachine.AvailableDrink.Tea, 300); //drink.Consume(); IHotDrink drink = machine.MakeDrink(); drink.Consume(); Console.ReadLine(); }
public void PrintPaymentDetails(IHotDrink drink) { _mobilePay.PrintPaymentDetails(drink); }
//Please UnComment Each Code Block To Test A Particular Pattern ! static void Main(string[] args) { #region Open Closed Principle And Specification Pattern //Product apple = new Product("Apple", Color.Red, Size.Medium); //Product tree = new Product("Tree",Color.Green,Size.Large); //Product house = new Product("House", Color.Blue , Size.Large); //Product[] products = {apple, tree, house}; ////old //// ProductFilter pf = new ProductFilter(); //// Console.WriteLine("Large Products (old):"); ////foreach (var p in pf.FilterBySize(products, Size.Large)) ////{ //// Console.WriteLine(p.Name); ////} //// Console.WriteLine("Green Products (old):"); ////new //IFilter<Product> filter = new SmartFilter(); //Console.WriteLine("Green Products (new):"); //foreach (var p in filter.Filter(products,new ColorSpecification(Color.Green))) //{ // Console.WriteLine($"{p.Name} is {p.Color}"); //} //Console.WriteLine("Large Products (new):"); //foreach (var p in filter.Filter(products, new SizeSpecification(Size.Large))) //{ // Console.WriteLine($"{p.Name} is {p.Size}"); //} ////color and size //foreach (var p in filter.Filter(products, // new AndSpecification<Product>(new ColorSpecification(Color.Blue),new SizeSpecification(Size.Large) ))) //{ // Console.WriteLine($"{p.Name} Size is {p.Size} And Color Is {p.Color}"); //} #endregion #region Builder and simple fluent api Pattern // var words = new[] { "Hello", "World" }; //Without Builder //var hello = "Hello"; //var sp = new StringBuilder(); //sp.Append("<p>"); //sp.Append(hello); //sp.Append("</p>"); //WriteLine(sp); //sp.Clear(); //sp.Append("<ul>"); //foreach (var item in words) //{ // sp.Append($"<li>{item}</li>"); //} //sp.Append("<ul/>"); //WriteLine(sp); //With Builder // HtmlBuilder htmlBuilder = new HtmlBuilder("ul", string.Empty); //Without Fluent Api (Builder) //foreach (var text in words) //{ // htmlBuilder.AddChild("li", text); //} //With Fluent Api (Builder) (returning an instance of the method Class) //htmlBuilder.AddChild("li", "Hello").AddChild("li","World"); //WriteLine(htmlBuilder); #endregion #region Fluent Builder Inhertiance With Recursive Generics // PersonJobBuilder personBuilder = new PersonJobBuilder(); //WorksAsA() doesn't exist because the instance returned from called method //is for the base class which doesn't know anything about child classes methods // WriteLine(personBuilder.Called("Mohamed Elhabbab").WorksAsA()); // WriteLine(personBuilder.Called("Mohamed").WorksAsA("Software Developer")); //var person = Person // .Instance // .Called("Mohamed") // .WorksAsA("Software Developer") // .Build(); //CodeBuilder codeBuilder = new CodeBuilder("Person"); //codeBuilder // .AddField("Name", "string") // .AddField("Age","int"); //WriteLine(codeBuilder); #endregion #region Facated Builder For Employee //EmployeeBuilder empBuilder = new EmployeeBuilder(); //Employee emp = empBuilder // .Address // .SetAddress("160 , 26 july St") // .SetCity("Giza") // .SetPostCode("12654") // .Employement // .WorksAt("ARPUPLUS") // .WorksAs("Software Developer") // .SetAnnualSalary(500000); //WriteLine(emp); #endregion #region Factory //1-Factory Method //Point p = PointFactory.NewPolarPoint(1.0, Math.PI / 2); //WriteLine(p); //Inner Factory //Shape square = Shape.Factory.MakeSquare(); //WriteLine(square.shapeType); //Shape triangle = Shape.Factory.MakeTriangle(45); //WriteLine(triangle.shapeType); //Shape polygon = Shape.Factory.MakePolygon(6, 45); //WriteLine(polygon.shapeType); //Abstract Factory //Steps :- //1:- Build IHotDrink Interface And Implement It Using Available Drinks //2:- Build IHotDrinkFactory Interface And Implement It Using Drinks Factories //3:- Build HotDrinkMachineClass To Store The Mapping Between Drinks And Its Factories //Using The Reflection Then Return The Right DrinkFactory To Be Used . //HotDrinkMachine hotDrinkMachine = new HotDrinkMachine(); //IHotDrink coffee = hotDrinkMachine.MakeDrink(AvailableDrinks.Coffee, 250); //coffee.Consume(); HotDrinkMachine_OCP hotDrinkMachine = new HotDrinkMachine_OCP(); IHotDrink coffee = hotDrinkMachine.MakeDrink(); #endregion Console.Read(); }