using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Visitor { class Car : ICarElement { public string Maker => "BMW"; private List elements; public Car() { elements = new List { new Engine(), new Body(), new Wheel() }; } public void Accept(ICarVisitor visitor) { foreach (ICarElement elem in elements) { elem.Accept(visitor); } visitor.Visit(this); } } }