Principios de diseño SOLIDVersion en ligne Observa este video y contesta las preguntas para aprender acerca de los principios de diseño SOLID. Créditos: Video: Anabel Montero Preguntas y comentarios: Anel Zamudio Jorge Sánchez Fernández xurxodev.com par Anel Zamudio 1 ¿Cuáles son las características que pueden observarse en un sistema e indican un mal diseño? a El sistema no permite cambios sin dañar su estructura. b El sistema deja de funcionar o se daña por cualquier cosa. c Los módulos del sistema no son reutilizables. d El sistema tiene partes bien diseñadas y otras no. e Todas las anteriores. 2 ¿Qué significa SOLID? a "Sólido" b Son las siglas en inglés de 5 principios básicos para un buen diseño de software. c Son sólo letras que no tienen significado o no representan nada. d Es alguna regla de la metodología "Six-Sigma". e "SOLuciones Innovadoras de Desarrollo" 3 ¿Qué indica el Principio de "Una única responsabilidad"? a Que una clase, método o función pueden implementar varias tareas a la vez. b Que una clase, método o función deben implementar una responsabilidad a la vez. c Que una clase, método o función debe implementar todas las responsailidades requeridas del objeto para ahorrar código. d Es alguna regla de la metodología "Six-Sigma". e "SOLuciones Innovadoras de Desarrollo" 4 ¿Qué dice el Principio de "Abierto-Cerrado"? a Que el sistema debe permitir modificaciones y cambios. b Que el sistema no debe permitir modificaciones y cambios. c Que el sistema debe permitir cambios que amplien su funcionalidad sin modificar su estructura principal. d Es alguna regla de la metodología "Six-Sigma". e "SOLuciones Innovadoras de Desarrollo" 5 ¿Qué plantea el Principio de sustitución de Liskov? a Que al implementar una relación de herencia el comportamiento de una subclase debe permanecer compatible con el de la superclase. b No es posible sustituir una superclase por una subclase. c Para sustituir una superclase por una subclase se deben incluir modificaciones o excepciones en el código del cliente. d Es alguna regla de la metodología "Six-Sigma". e "SOLuciones Innovadoras de Desarrollo" 6 ¿Qué plantea el Principio de segregación de interfaces? a Que los clientes deben siempre tener acceso a todas las interfaces. b Las interfaces deben incluir todas las funcionalidades posibles en un solo lugar. c Los clientes de un rpograma dado sólo deberían conocer de éste aquellos métodos que realmente usan, y no aquellos que no necesitan usar. d Es alguna regla de la metodología "Six-Sigma". e "SOLuciones Innovadoras de Desarrollo" 7 ¿Qué propone el Principio de inversión de dependencias? a Se debe diseñar hacias las interfaces, no hacia las implementaciones. b Ocultar los detalles de implementación. c Definir la abstracción en base a las necesidades del cliente y no en las capacidades de implementación. d Todo lo anterior. e "SOLuciones Innovadoras de Desarrollo" Explicación 1 En efecto, todas las características anteriores indican rigidez, fragilidad, inmovilidad y viscosidad en el sistema y son indicios de un mal diseño. 2 SOLID representa los 5 principios básicos que todo diseñador debe seguir para un buen diseño de software. 3 Así como un jugador de beisbol no puede lanzar, batear y atrapar la bola al mismo tiempo, no es una buena idea que una sola clase, método o función implemente varias responsabilidades. Mientras más específica sea la responsabilidad que se implementa, más reutilizable será. 4 El sistema debe diseñarse de tal modo que las modificaciones a su funcionalidad no impliquen reescribir su estructura principal. 5 Se debe diseñar la arquitectura de clases de tal manera que en la implementación de los mecanismos de herencia, sea posible garantizar la compatibilidad de comportamiento de las subclases con la super clase, a través de la sobre escritura de métodos. 6 En el diseño, se debe siempre considerar el mantener el sistema desacoplado, de los demás sistemas de cuales depende. 7 El principio de inversión de dependencias proporciona más flexibilidad y escalabilidad al software que se está diseñando, de tal manera que sea posible realizar cambios sin afectar a otras partes.