Si deseas conocer la base de este principio así como una descripción del mismo puedes revisar el siguiente Post:
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.
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 |
Excelente, que bueno que se trabaje la programacion de esta manera, muy buen post!!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
gracias¡ unos tips tan sencillos pero tan utiles
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Votado por el trail Team-México @team-mexico
Canal Discord ¡Te esperamos!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit