【texto】
Sabemos que o controle da interface do usuário mais importante e mais difícil no Android é o controle da lista ListView. Se você deseja usá -lo com flexibilidade, deve usar o adaptador adaptador. Portanto, acho que ainda é necessário aprender o modo adaptador em Java (independentemente de poder ser usado no futuro). Afinal, o idioma Java é uma base muito importante para o desenvolvimento do Android.
Para entender completamente o modo adaptador, há muito conhecimento para aprender, por exemplo: o modo adaptador possui duas formas diferentes: o modo adaptador de classe e o modo adaptador do objeto. Mas, como iniciante, vou simplesmente aprender o conhecimento introdutório do modo de orquestração e continuarei a melhorá -lo no futuro. Espero que os sapatos infantis que estão lutando no caminho da codificação não reclamam → _ →
1. Introdução do adaptador
• Converta uma interface de uma classe em outra interface que o cliente deseja. O modo adaptador permite que as classes originalmente não pudessem trabalhar juntas devido à incompatibilidade das interfaces trabalharem juntas.
• O modo adaptador é muito comumente usado nas estruturas java modernas. Esse padrão é adequado para os seguintes cenários: você deseja usar uma classe existente, mas a classe não atende aos requisitos de interface; Ou você precisa criar uma classe reutilizável que se adapte a outras classes que não fornecem uma interface adequada.
2. Exemplos de maçãs e laranjas
A idéia de um adaptador pode ser ilustrada pelo exemplo simples a seguir. Este exemplo é fazer uma "adaptação" laranja em uma maçã. Como mostrado na figura abaixo:
Como você pode ver na metade inferior da figura acima, o adaptador contém uma instância laranja e herda a classe Apple. O objeto laranja é colocado no adaptador, então o laranja age como uma maçã. O diagrama lógico correspondente é o seguinte:
3. Exemplos de plugues de caixa de soquete
Na figura acima, podemos conectar com êxito o plugue ao soquete esquerdo através do adaptador do meio.
4. Implementação de código do adaptador de plugue
/** Modo adaptador (adaptador): converte uma interface de uma classe em outra interface que o cliente deseja. O modo adaptador permite que as classes originalmente não pudessem trabalhar juntas devido à incompatibilidade das interfaces trabalharem juntas. */class AdapterDemo {public static void main (string [] args) {// Power a inicia o funcionamento da powerA = new PowerAIMPL (); start (PowerA); PowerB PowerB = new PowerBimpl (); PowerAadapter PA = novo PowerAadapter (PowerB); start (PA); } // Método de definição: PowerA trabalha public estático void Start (PowerA Powera) {System.out.println (".... algum código duplicado ......"); PowerA.insert (); System.out.println ("... algum código duplicado .../n"); } /** public static void Start (PowerB PowerB) {System.out.println ("... algum código duplicado ......"); PowerB.Connect (); System.out.println ("... algum código duplicado ......"); } */} // Defina a classe Adaptadora PowerAadapter implementa PowerA {private PowerB PowerB; // Interface para adaptar o PowerAadapter público (PowerB PowerB) {this.powerB = PowerB; } // Implementando a interface PowerA, você deve implementar os métodos em PowerA public void insert () {PowerB.Connect (); }}/** Power a interface*/interface PowerA {public void insert ();} classe PowerAIMPL implementa PowerA {public void insert () {System.out.println ("Power Uma interface é inserida, comece a funcionar"); }}/** Interface B Power B*/Interface PowerB {public void Connect ();} classe PowerBimpl implementa PowerB {public void Connect () {System.out.println ("Power B Interface está conectada, comece a funcionar"); }} Neste exemplo, queremos que o PowerB chame o código no método start () em PowerA; Obviamente, não queremos repetir as 23 ou 25 linhas de código comentadas. Neste momento, você pode usar o modo adaptador.
A explicação do código acima:
Linha 30: comece a definir o adaptador, que também é o começo do código principal;
Linhas 33 e 34: Passe a energia no método de construção;
Linha 37 Código: como é implementar a interface PowerA, é necessário implementar o método insert () em PowerA;
Código da linha 38: Chamamos o método PowerB's Connect () no método insert () da PowerA;
Imediatamente depois, as linhas 10, 11 e 12 de código significa: quando novo A PowerB, passamos para o adaptador PowerAadapter, iniciamos o adaptador e, em seguida, o PowerB executará o código nas linhas 16, 24 e 18.
Nota: A ordem de 16, 24 e 18 não está errada, porque no adaptador substituímos 24 linhas de código pela linha 17.
O efeito de operação é o seguinte:
Da mesma forma, se eu também quiser usar o PowerA como PowerB, posso definir outro adaptador PowerBadapter para implementar um adaptador bidirecional.
5. Resumo
O código comentado nas linhas 23 e 25 acima indica que é muito código duplicado e não está em conformidade com o pensamento orientado a objetos. Agora, imaginamos um exemplo de nosso projeto estar online e os clientes o estão usando, mas depois foi adicionada uma nova demanda. Existe um princípio OO para objetos orientados a objetos: feche a modificação (depois de entrar on-line, tente não modificar o código, caso contrário, uma reação em cadeia pode ocorrer, resultando em problemas com outros códigos chamando esse método) e aberto a extensões (novos métodos definidos por você, que outros ainda não chamaram, então, é possível modificá-los). Neste ponto, podemos reduzir esses código duplicados por meio de adaptadores.
6. Princípios de design oo
• Programação orientada para interface (programação abstrata)
• Alterações no pacote
• Use mais combinações, use menos herança
• Perto de modificações para abrir a extensões
Pessoalmente, esses princípios de design precisam ser continuamente aprofundados na prática, para que não os descreva aqui demais ~
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.