-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathPizza.cs
More file actions
76 lines (63 loc) · 1.96 KB
/
Pizza.cs
File metadata and controls
76 lines (63 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CreationalPatterns.AbstractFactory
{
public enum PizzaType
{
Cheese,
Veggie
};
public abstract class Pizza
{
public string Name { get; set; }
public Dough Dough { get; set; }
public abstract void Prepare();
public void Bake()
{
Console.WriteLine("Bake for 15 minutes");
}
public void cut()
{
Console.WriteLine("Cutting the pizza into 8 slices");
}
public void box()
{
Console.WriteLine("Pack the pizza in a box");
}
}
// Cheese Pizzas
public class CheesePizza : Pizza{
private string description = "Cheese Pizza";
private PizzaIngredientFactory ingredientFactory;
public CheesePizza(PizzaIngredientFactory ingredientFactory)
{
this.ingredientFactory = ingredientFactory;
this.Name = ingredientFactory.GetName() + " Style " + description;
}
public override void Prepare()
{
Console.WriteLine("Preparing {0}", this.Name);
this.Dough = ingredientFactory.CreateDough();
Console.WriteLine("Creating {0}", this.Dough.GetName());
}
}
public class VeggiePizza : Pizza
{
private string description = "Veggie Pizza";
private PizzaIngredientFactory ingredientFactory;
public VeggiePizza(PizzaIngredientFactory ingredientFactory)
{
this.ingredientFactory = ingredientFactory;
this.Name = ingredientFactory.GetName() + " Style " + description;
}
public override void Prepare()
{
Console.WriteLine("Preparing {0}", this.Name);
this.Dough = ingredientFactory.CreateDough();
Console.WriteLine("Creating {0}", this.Dough.GetName());
}
}
}