Responsabilidades asociadas al seteo de un atributo #125
-
Buenas! Planteo la siguiente duda: Supongamos que tenemos una clase que tiene dos atributos. Uno de ellos es Entonces, si en algún momento yo tuviese que actualizar La duda puntual es cuál es la opción más acertada:
Supongo que como siempre, "depende"; pero quisiera saber si hay alguna heurística en este sentido. Muchas gracias! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Hola, Brian! Si realmente es necesaria esa redundancia, probablemente la alternativa 1 sería más adecuada. Analicemos un poco el problema de la cohesión en la Alternativa 1, recordando que las cualidades de diseño siempre son importantes en tanto terminan redundando en ventajas prácticas: Sobre la cohesión, el problema es que un componente tenga varias responsabilidades entremezcladas. Ahora bien, cuáles son los problemas prácticos clásicamente asociados a tener varias responsabilidades en un componente (objeto/metodo/funcion/...)? Algunos podrían ser: a) Quieras hacer un cambio en responsabilidad A pero no en B y metas ruido. En este caso, si bien puede argumentarse correctamente que la Alternativa 1 es "menos cohesiva", no pierde tanto en cohesión porque, si lo pensás, En términos prácticos, viendo los ítems de mas arriba: a) Es poco probable que se dé xq son casi la misma responsabilidad Por otro lado, la Alternativa 2 no solo aumenta el acoplamiento, sino que encima aumenta el acoplamiento implícito (aquel que no es evidente), lo cual siempre dijimos que es peor. En este caso en particular eso se manifiesta como: Cualquier otro componente que tenga que setear En definitiva, analizando con detalle, es bastante probable que la alternativa 2 te traiga más dolores de cabeza a futuro que la 1. |
Beta Was this translation helpful? Give feedback.
-
Muchas gracias @roli93! Saludos |
Beta Was this translation helpful? Give feedback.
Hola, Brian!
Si realmente es necesaria esa redundancia, probablemente la alternativa 1 sería más adecuada.
Analicemos un poco el problema de la cohesión en la Alternativa 1, recordando que las cualidades de diseño siempre son importantes en tanto terminan redundando en ventajas prácticas:
Sobre la cohesión, el problema es que un componente tenga varias responsabilidades entremezcladas. Ahora bien, cuáles son los problemas prácticos clásicamente asociados a tener varias responsabilidades en un componente (objeto/metodo/funcion/...)?
Algunos podrían ser:
a) Quieras hacer un cambio en responsabilidad A pero no en B y metas ruido.
b) Que puedan darse x separado cambios en A y B y tengas probl…