Estoy leyendo el libro de refactorización de Fowler y estoy un poco confundido acerca de esos dos olores de código."Cadenas de mensajes" frente a "Hombre medio"
"Cadenas de mensajes" son llamadas como a.getB().getC().getValue()
.
"intermediario" es un método como
class A
{
object getCValue()
{
return b.getCValue();
}
}
mi modo de entender los dos sección es que si tienes "Cadenas de mensajes" se les acorta mediante la introducción de "Middle Men". Y si tiene "Hombres medios", conviértalos en "Cadenas de mensajes" ...
Ahora, obviamente, tiene que haber alguna limitación en esto o tendría el tiovivo de un programador. ¿En qué punto debería favorecer uno sobre el otro?
Uno está acoplando la clase a clases no relacionadas, el otro está acoplando la clase a la estructura. Entonces, en teoría, mi enfoque sería verificar si un cambio determinado reduce un tipo de acoplamiento más de lo que aumenta el otro tipo de acoplamiento. Pero, ¿hay un tipo de acoplamiento peor y debería pesarse más? Es decir. ¿solo agrega un acoplamiento de clase si puede quitar los acoplamientos estructurales X?