Princípio de inversão de dependência em JAVA
Um dos princípios mais básicos da lei americana é “todos são iguais”. Não nos importamos com o tipo de luta ou derramamento de sangue, apenas entendemos isso como um método JAVA, que é definido da seguinte forma:
public final booleano todos são iguais(pessoa 1, pessoa 2){
retornar verdadeiro;
}
Embora as leis de cada estado possam ser diferentes, como a Lei Básica dos Estados Unidos, Nova York pode ser chamada de Lei Básica de Nova York. Eles deveriam ter tal relacionamento: a Lei Básica de Nova York herda a Lei Básica dos Estados Unidos. Estados, mas não permite a reescrita deste método.
Quando se trata de fiscalização em Nova York, são usados os seguintes:
Lei Básica dos Estados Unidos = nova Lei Básica de Nova York
Chamar o método “todos são iguais” em qualquer lugar retornará “verdadeiro”, o que significa que o princípio da igualdade de todos não pode ser alterado em lugar nenhum. Esta é uma decisão macro que determina o micro, e não mudará entre homens e mulheres por causa do Novo. Iorque. Desigualdade das mulheres.
Por exemplo, um determinado país também possui uma lei básica e um método de igualdade para todos. A definição deve ser a seguinte:
public boolean todos são iguais(pessoa 1, pessoa 2){
retornar verdadeiro;
}
Por exemplo, um determinado local num determinado país também tem uma lei básica. A lei básica de um determinado local também é herdada da lei básica de um determinado país. pode ser reescrito. Quando implementado em um determinado local, pode ser:
Lei Básica de um determinado país = nova Lei Básica de um determinado lugar
ou
Lei Básica de um determinado local = nova Lei Básica de um determinado local
Talvez quando a Lei Básica de um determinado lugar herdou a Lei Básica de um determinado país, o método “todos são iguais” foi reescrito e alterado para:
public boolean todos são iguais(pessoa 1, pessoa 2){
if(pessoa 1==pessoa de um determinado lugar&& pessoa 2==pessoa de um determinado lugar){
if(pessoa 1 e pessoa 2 têm os mesmos atributos){
if(pessoa 1 e pessoa 2 são iguais, exceto que não são a mesma pessoa){
if(ninguém mais acontece){
retornar verdadeiro;
}outro{
retornar falso;
}
}outro{
retornar falso;
}
}outro{
retornar falso;
}
}outro{
retornar falso;
}
}
Vamos falar sobre o princípio de inversão de dependências, segundo “JAVA and Patterns”:
O nível abstrato contém a lógica de negócios do sistema de aplicação e as decisões estratégicas de nível macro que são importantes para todo o sistema e são um reflexo da inevitabilidade, enquanto o nível concreto contém alguns algoritmos e lógicas menores relacionados à implementação, bem como táticos; decisão envolve uma chance considerável. Níveis específicos de código mudam frequentemente e erros não podem ser evitados. O nível de abstração depende do nível de concretude. Mudanças no algoritmo usando detalhes no nível específico afetam imediatamente a lógica de negócios macroscópica no nível de abstração, fazendo com que o microscópico determine o macroscópico, as táticas determinem a estratégia e o acaso determine a necessidade. Isso é ridículo.
Depois de ler isto, você entenderá por que deverá usá-lo com mais frequência ao escrever código no futuro:
lógica abstrata = nova lógica concreta
Use o mínimo possível:
lógica específica = nova lógica específica
Esta é a programação orientada a interface atualmente defendida. Aqui está outro exemplo prático de programação orientada a interface:
Normalmente você deve usar List com mais frequência. A própria List é uma interface herdada de Collection.
Lista lista=novo Vetor();
A Lista declarada desta forma é na verdade um tipo Vector, porque Vector é sua subclasse. De acordo com o princípio de substituição de Liskov, as subclasses podem ser aceitas onde quer que a classe pai possa ser aceita. Neste momento, a Lista está sincronizada e, claro, será afetada por determinado desempenho. Se você mudar para um ambiente que não requer sincronização no futuro, você só precisará alterar o código acima para algo assim:
Lista lista=new ArrayList();
Nenhum outro código precisa ser modificado. O tipo real de List neste momento é ArrayList.
A partir deste ponto, podemos ver porque a programação orientada a interface é valorizada pelos designers, porque depois de fornecerem a interface, os implementadores implementam classes específicas baseadas na interface, e não há necessidade de se preocupar com os implementadores destruindo a integridade do original. programa, e os designers nunca se preocuparão apenas com os métodos na interface, não se preocupem com os métodos auxiliares na classe concreta. Mas isso tem um custo adicional, como adicionar classes JAVA. Se classes abstratas podem trazer menos eficiência, é uma escolha melhor usar acoplamento concreto, como classes de ferramentas.