Acoplamiento, simplificado
Cuando un objeto llama a un método, propiedad, etc. de otro objeto, decimos que los objetos están acoplados. Lo llamamos acoplamiento porque ahora la persona que llama no puede cambiar nada sobre su propio método / accesorio. sin romper la llamada .
Por lo tanto, cuanto más el acoplamiento - métodos, accesorios. - Cuanto más difícil sea cambiar el código de la persona que llama sin romper todo el código que lo usa.
contemplando el acoplamiento
- Haciendo referencia incluso a un solo accesorio, el método combina dos objetos.
- Obviamente, el acoplamiento es necesario para crear software.
- Dada la naturaleza del "paso de bloqueo" del acoplamiento, queremos limitarlo y aislarlo. Este objetivo simplemente va junto con el desarrollador de software general. principios
- Cuantos menos objetos tengamos con qué hablar, menor será el acoplamiento.
- Si necesito hacer, digamos, 20 llamadas a métodos diferentes, el acoplamiento es menor si las 20 llamadas son a una clase / objeto, viceversa, esos mismos métodos se extienden sobre varias clases / objetos.
La mayoría del conocimiento causa un acoplamiento loco
Aquí tenemos un Employee
que tiene un Person
que tiene una 'Dirección'
public class Employee {
public Person me = new Person();
}
public class Person {
public Address home = new Address();
}
public class Address {
public string street;
}
Para llegar a la calle Debo llamar: myEmployee.me.home.street
. Esto es 180 grados opuesto al principio de menor conocimiento. Tengo que saber sobre el funcionamiento interno, la estructura compuesta, de la Employee
, Person
y Address
clases.
Este diseño de clase defectuoso me obliga a conocer todas esas clases y, por lo tanto, myEmployee.me.home.street
me une (el objeto llamante) a no menos de 3 clases, ¡para obtener una sola propiedad!
Menos conocimiento salva el día
Si hablo solo con la Employee
clase, estoy aplicando el principio de menor conocimiento per se, y al hacerlo, automáticamente limitamos el acoplamiento a solo esa clase, y al mismo tiempo aislamos el acoplamiento a esa clase.
Al agregar todas las propiedades necesarias en la Employee
clase, arreglamos el acoplamiento.
así
public class Employee {
public Person me = new Person();
public string street { return me.home.street; }
}
Me permite llamar: myEmployee.street
-
- Sólo sé
Employee
- Solo estoy acoplado
Employee
, no importa cuán compleja sea su estructura.
Menos conocimiento hasta el final
Nos desacoplado de myEmployee Person
y Address
, y lo ideal es que debemos seguir aplicando los conocimientos mediante la adición de por lo menos pase a través de las propiedades de tal manera que Employee
sólo habla con Person
y Person
sólo habla conAddress