¿Qué es el Principio de Equivalencia de Reutilización/Exención y por qué es importante?El Principio de Equivalencia de Reutilización/Liberación (REP)
Respuesta
la reutilización/Liberación principio de equivalencia (REP) dice:
La unidad de reutilización es la unidad de liberación. La reutilización efectiva requiere el seguimiento de las liberaciones de un sistema de control de cambios. El paquete es la unidad efectiva de reutilización y liberación.
La unidad de reutilización es la unidad de la liberación
Código no debe ser reutilizado copiándola de una clase y pegándolo en otra. Si el autor original corrige cualquier error en el código o agrega alguna característica, no obtendrá automáticamente el beneficio. Deberá averiguar qué ha cambiado y luego modificar su copia. Tu código y el código original divergirán gradualmente.
En su lugar, el código debe reutilizarse incluyendo una biblioteca liberada en su código. El autor original conserva la responsabilidad de mantenerlo; ni siquiera deberías necesitar ver el código fuente.
reutilización efectiva requiere el seguimiento de las emisiones de un sistema de control de cambios
El autor de una biblioteca necesita identificar comunicados con números o nombres de algún tipo. Esto permite a los usuarios de la biblioteca identificar diferentes versiones. Esto requiere el uso de algún tipo de sistema de seguimiento de versiones.
El paquete es la unidad efectiva de reutilización y suelte
Podría ser posible utilizar una clase como unidad de reutilización y liberación, sin embargo, hay tantas clases en una aplicación típica, sería gravoso para el sistema de seguimiento de lanzamiento para realizar un seguimiento de todos ellos. Se requiere una entidad de mayor escala, y el paquete se adapta bien a esta necesidad.
Véase también el artículo de Robert Martin en Granularity.
Por paquete, supongo que lo que quiere decir es * no * paquete Java o espacio de nombres C#, pero dll y jar. ¿Está bien? –
Ese enlace a Granularity ya no funciona. ¿Está aquí https://pdfs.semanticscholar.org/53d0/8de266fb80355400d10f7ea77eea971d48f9.pdf? –
- 1. equivalencia estructural vs equivalencia de nombre
- 2. clases de equivalencia Lisp
- 3. comprimir vector en (inverso de rep)
- 4. equivalencia canónica en el patrón
- 5. Equivalencia de prueba de xml.etree.ElementTree
- 6. Equivalencia SPARQL para el operador SQL IN()
- 7. Scala: Equivalencia de tipos dependientes de ruta
- 8. lista de esquemas comparación de equivalencia
- 9. ¿La reflexión rompe el principio de encapsulación?
- 10. Principio de Java EE
- 11. R rep() en Python (replica elementos de una lista/vector)
- 12. Comparación de ejecutables generados para la equivalencia
- 13. Comprobando la equivalencia de consulta SQL
- 14. Equivalencia de "con ... fin con" en C#?
- 15. Reemplazar la comparación de equivalencia en Javascript
- 16. Cómo probar la equivalencia de rangos
- 17. Primitivas en caja y equivalencia
- 18. ¿Hay algún Principio de Clojure?
- 19. Principio de los mejores principios
- 20. ¿Cuáles son los argumentos a favor y en contra de la equivalencia de nombres y la equivalencia estructural?
- 21. Siguiendo el principio DRY en ASP.NET
- 22. ¿La programación defensiva viola el principio DRY?
- 23. ¿Cómo añado el archivo al principio?
- 24. ¿Cómo hago una comparación de equivalencia de hash Perl simple?
- 25. Prueba general de equivalencia de dos FSM en tiempo finito?
- 26. Cortar al principio/al final de la línea, pegar al final/principio de la línea
- 27. Tiene Scala alguna equivalencia con Haskell indefinido?
- 28. Java: clase externa para determinar la equivalencia?
- 29. Principio BODMAS en .NET
- 30. Usando el principio de separación Command-Query en Controladores MVC
Supongo que quieres la credencial de autoaprendizaje :-) – Mendelt
Bueno, eso estaría bien. Pero la razón principal por la que hago esto (y hago las otras preguntas sobre los principios de diseño de OO) es ayudar a sembrar el sitio con información y, con suerte, aumentar el conocimiento de estos principios. Estoy constantemente sorprendido por la cantidad de desarrolladores que conozco que nunca han oído hablar de ellos. –
De acuerdo, es suficiente. Eliminé mi respuesta reprendiéndote por ir a la lista. (Debería haber sido un comentario aquí de todos modos.) –