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; } }