Acoplamento simplificado
Quando um objeto chama um método, propriedade, etc. de outro objeto, dizemos que os objetos estão acoplados. Chamamos isso de acoplamento porque agora o receptor não pode mudar nada sobre seu próprio método / objeto. sem interromper o chamador .
Assim, quanto mais os métodos de acoplamento, adereços. - mais difícil é alterar o código chamado sem quebrar todo o código que o usa.
contemplando acoplamento
- Referenciando até um único objeto, o método acopla dois objetos.
- Obviamente, o acoplamento é necessário para a criação de software.
- Dada a natureza do acoplamento, nós queremos limitá-lo e isolá-lo. Esse objetivo simplesmente acompanha o desenvolvedor de software geral. princípios.
- Quanto menos objetos tivermos que conversar, menor será o acoplamento.
- Se eu precisar, digamos, 20 chamadas de métodos diferentes, o acoplamento será menor se todas as 20 chamadas forem para uma classe / objeto, vice-versa os mesmos métodos espalhados por várias classes / objetos.
A maioria dos conhecimentos causa acoplamentos malucos
Aqui temos um Employeeque tem um Personque tem um 'Endereço'
public class Employee {
public Person me = new Person();
}
public class Person {
public Address home = new Address();
}
public class Address {
public string street;
}
Para chegar a rua I devem ligar para: myEmployee.me.home.street. Isso é 180 graus oposto ao princípio do mínimo conhecimento. Eu tenho que saber sobre os internos, a estrutura composta, do Employee, Persone Addressclasses.
Esse design de classe defeituoso me obriga a conhecer todas essas classes e, assim, myEmployee.me.home.streetacopla-me (o objeto chamador) a nada menos que 3 classes - para obter apenas uma propriedade!
Menos conhecimento salva o dia
Se eu falo apenas com a Employeeclasse, estou aplicando o princípio do menor conhecimento em si e, ao fazê-lo, limitamos automaticamente o acoplamento apenas a essa classe e, ao mesmo tempo, isolamos o acoplamento a essa classe.
Adicionando todas as propriedades necessárias na Employeeclasse, corrigimos o acoplamento.
portanto
public class Employee {
public Person me = new Person();
public string street { return me.home.street; }
}
Permite-me ligar para: myEmployee.street-
- Eu "sei" apenas
Employee
- Estou acoplado a apenas
Employee- não importa quão complexa seja sua estrutura.
Menos conhecimento até o fim
Nós dissociado myEmployee de Persone Address, e, idealmente, deveríamos continuar a aplicar menos conhecimento adicionando passagem propriedades tais que Employeesó fala Persone Personsó falaAddress