public void CalcularArea(FormaGeometrica formaGeometrica)
        {
            if (formaGeometrica.GetType() == typeof(Quadrado))
            {
                AreaQuadrado(formaGeometrica as Quadrado);
            }

            if (formaGeometrica.GetType() == typeof(Circulo))
            {
                AreaCirculo(formaGeometrica as Circulo);
            }
        }
 public void Area(FormaGeometrica formaGeometrica)
 {
     //Violação o OCP
     if (formaGeometrica.GetType() == typeof(Quadrado))
     {
         ((Quadrado)formaGeometrica).Area();
     }
     if (formaGeometrica.GetType() == typeof(Retangulo))
     {
         ((Retangulo)formaGeometrica).Area();
     }
 }
        /// <summary>
        /// Se encarga de realizar la suma de área, perímetro y cantidad de forma geométrica según la forma que corresponda
        /// </summary>
        /// <param name="forma">Forma geométrica</param>
        public void SumarFormasGeometricas(FormaGeometrica forma)
        {
            switch (forma.GetType().Name)
            {
            case _circulo:
                ContadorCirculos.GetInstance().SumarFormaGeometrica(forma);
                break;

            case _trianguloEquilatero:
                ContadorTriangulosEquilateros.GetInstance().SumarFormaGeometrica(forma);
                break;

            case _cuadrado:
                ContadorCuadrados.GetInstance().SumarFormaGeometrica(forma);
                break;

            case _rectangulo:
                ContadorRectangulos.GetInstance().SumarFormaGeometrica(forma);
                break;

            case _trapecio:
                ContadorTrapecios.GetInstance().SumarFormaGeometrica(forma);
                break;
            }
        }