EXAMPLE || Open/Closed

in spanish •  6 years ago 

Propia Edición.

Si deseas conocer la base de este principio así como una descripción del mismo puedes revisar el siguiente Post:

Principio Open/Closed


Imaginemos a un retratista el cual tiene la necesidad de pintar cuadros entonces: tenemos una clase con un método que se encarga de pintar un retrato por persona. Por su puesto, cada persona tiene su propia forma de ser retratada. Nuestra persona quedaría: Simple, una clase que especifica su tipo con un enumerador; suponiendo que tenemos algo como:

Y el talento del pintor haría esto:


Mientras no necesitemos pintar mas tipos aparte de personas ni el switch se repita en varias partes del código, no debería existir la necesidad de modificarlo.

  • Pero puede llegar un punto en el que necesitemos pintar un perro un paisaje un atardecer; Esto implicaría crear un nuevo enum, y un nuevo case y claro un nuevo método para implementar la nueva pintada.

  • Si lo solucionamos mediante herencia y polimorfismo lo mas lógico seria eliminar ese enum y crear clases independientes y así nuestro retratista sabría como se debe pintar cada cosa.



Ahora tras esta simple reducción nuestro artista puede pintar lo que quiera solo extendiendo de la clase principal; note ce que en C# la palabra extends es ":"






Recuerda que estos principios fueron publicados por primera vez por Robert C. Martin, también conocido como Uncle Bob, en su libro Agile Software Development: Principles, Patterns, and Practices. Una persona que te recomiendo seguir, y revisar su blog de vez en cuando.

Fuente

Y recuerden amiguitos:

  • Un mejor desarrollo conlleva poder ser interpretado por cualquier programador.
  • Si forjas estas bases como tuyas los resultados que obtendrás serán satisfactorias tanto para ti como para el que toque tu proyecto a futuro .
  • No importa si ya eres un viejo lobo de mar en esto o apenas emprendes esta aventura conocer estos principios lo único que pueden hacer es hacerte mejorar.

Hasta la próxima...

Entradas Relacionadas
S.O.L.I.D.
Principio de Responsabilidad Única
Principio Open/Closed
PRINCIPIO DE SUSTITUCIÓN DE LISKOV
Principio de segregación de interfaces
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Excelente, que bueno que se trabaje la programacion de esta manera, muy buen post!!!

gracias¡ unos tips tan sencillos pero tan utiles

Este post fue votado por la comunidad y trail @developspanish, comunidad encargada de curar a los programadores, traductores de software y bloggers de informática y tecnología de habla hispana.

Contenido de calidad
Votado por el trail Team-México @team-mexico
Canal Discord ¡Te esperamos!