Clean Code, ejemplo para quitar switch/case mediante polimorfismo

Una buena práctica es evitar los ifs anidados o switch case, para ello se puede usar el Polimorfismo.

Voy a poner un ejemplo

Tengo un switch el cual, según el tipo de documento llama a una función de una clase estática.

Clase  estática.

Ahora voy a crear las clases y cambiar el código para quitar el switch.

Lo primero creo una clase de tipo Interfaces, y creo para cada tipo de documento su clase.

 

Ahora en la función lo cambio, usando una constante de tipo diccionario para identificar la clase correspondiente.

 

2 pensamiento sobre “Clean Code, ejemplo para quitar switch/case mediante polimorfismo

  1. Dari

    Hola! En la clase estática inicial CreatePdf, el método convertirExcelaPdf tiene dos parámetros por lo que no alcanzaría con implementar la interface IDocumentoTipo en la clase DocumentoXls. Cómo lo resolviste?

    Saludos

    Contestar
    1. MasanasaNotas Autor del artículo

      Hola Dari
      Realmente obvie el parámetro y me quedo la estructura. Lo he quitado para que no cree confusión
      Lo que se me ocurre es que podrías crear una estructura con dos parámetros para todos los casos y el segundo parámetro que sea opcional.
      public byte[] ConvertirPdf(string path, string encabezado=””)

      Si se te ocurre una forma mejor o a alguien, lo podría compartir

      Gracias

      Contestar

Deja un comentario