Пример #1
0
        static void Main(string[] args)
        {
            var shapes = new GeometricShape[] {
                new Rectangle(10, 5),
                new Triangle(4, 6, 30),
                new Circle(4)
            };

            var drawVisitor      = new DrawVisitor(0, 0);
            var areaVisitor      = new GetAreaVisitor();
            var parameterVisitor = new GetPerimeterVisitor();

            foreach (var shape in shapes)
            {
                Console.WriteLine(shape.Name);
                shape.Accept(drawVisitor);
                Console.WriteLine($"Points = {string.Join(", ", drawVisitor.Points[shape])}");
                shape.Accept(areaVisitor);
                Console.WriteLine($"Area = {areaVisitor.Areas[shape]}");
                shape.Accept(parameterVisitor);
                Console.WriteLine($"Parameter = {parameterVisitor.Parameters[shape]}");
                Console.WriteLine();
            }
            ;
        }
Пример #2
0
        static void Main(string[] args)
        {
            var figures = new List <Figure> {
                new Circle(10), new Square(20), new Triangle(3, 4, 5)
            };

            var areaVisitor  = new AreaVisitor();
            var colorVisitor = new ColorizeVisitor();
            var drawVisitor  = new DrawVisitor();

            foreach (var figure in figures)
            {
                figure.AcceptColorizeVisitor(Color.Blue, colorVisitor);
                figure.AcceptDrawVisitor(0, 0, drawVisitor);
                figure.AcceptGetAreaVisitor(areaVisitor);
            }
            //Output:
            //Drawing Circle on position 0, 0
            //Circle's area: 314,159265358979
            //Drawing Square on position 0, 0
            //Square's area: 400
            //Drawing Triangle on position 0, 0
            //Triangle's area: 6
        }