static void Main(string[] args) { var client = new Client(); #region Count Visitor //Console.WriteLine("1. Count Visitor"); //var countVisitor = new CountVisitor(); //countVisitor.CountElements(client.ObjectStructure); //Console.WriteLine("Number of elements is: {0}", countVisitor.Count); //Console.WriteLine(); #endregion #region Display Names Visitor //Console.WriteLine("2. Display Names Visitor"); //var displayNameVisitor = new DisplayNameVisitor(); //displayNameVisitor.DisplayElementsNames(client.ObjectStructure); //Console.WriteLine("Elements are: {0}", displayNameVisitor.Output); //Console.WriteLine(); #endregion var book = new Book("C# Design Patterns", 25); var fruit = new Fruit("Oranges", 6, 3); var priceVisitor = new PriceCalculatorVisitor(); book.Accept(priceVisitor); fruit.Accept(priceVisitor); Console.WriteLine(priceVisitor.Total); // 25 + (6*3) Console.ReadLine(); }