private void Builder(object sender, RoutedEventArgs e) { Builder builder = new ComplexObjectBuilder(); builder.CreateComplexObject(); builder.SetCircle(); builder.SetSquare(); ICircle circle = builder.ComplexObject.Circle; ISquare square = builder.ComplexObject.Square; Rectangle rect = new Rectangle() { Fill = new SolidColorBrush(square.GetSqureColor()), Height = square.GetSideSize(), Width = square.GetSideSize() }; Ellipse el = new Ellipse() { Fill = new SolidColorBrush(circle.GetCirleColor()), Height = circle.GetRadius() * 2, Width = circle.GetRadius() * 2 }; Grid grid = new Grid(); grid.Children.Add(rect); grid.Children.Add(el); Canvas.SetLeft(grid, 10); Canvas.SetTop(grid, y); canvas.Children.Add(grid); y += rect.Height + 5; }