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 Employeeque tiene un Personque 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, Persony Addressclases.
Este diseño de clase defectuoso me obliga a conocer todas esas clases y, por lo tanto, myEmployee.me.home.streetme 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 Employeeclase, 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 Employeeclase, 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 Persony 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 Employeesólo habla con Persony Personsólo habla conAddress