【texto】
Sabemos que el control de la interfaz de usuario más importante y más difícil en Android es el control de la lista ListView. Si desea usarlo de manera flexible, debe usar el adaptador adaptador. Por lo tanto, creo que todavía es necesario aprender el modo adaptador en Java (independientemente de si se puede usar en el futuro). Después de todo, el lenguaje Java es una base muy importante para el desarrollo de Android.
Para comprender completamente el modo adaptador, hay mucho conocimiento que aprender, por ejemplo: el modo adaptador tiene dos formas diferentes: el modo de clase del adaptador y el modo adaptador de objeto. Pero como principiante, simplemente aprenderé el conocimiento introductorio del modo de orquestación, y continuaré mejorando en el futuro. Espero que los zapatos infantiles que luchan en el camino a la codificación no se quejan → _ →
1. Introducción del adaptador
• Convierta una interfaz de una clase a otra interfaz que el cliente desee. El modo adaptador permite clases que originalmente no pudieron trabajar juntas debido a la incompatibilidad de las interfaces para trabajar juntas.
• El modo adaptador se usa muy comúnmente en los marcos Java modernos. Este patrón es adecuado para los siguientes escenarios: desea usar una clase existente, pero la clase no cumple con los requisitos de la interfaz; O necesita crear una clase reutilizable que se adapte a otras clases que no proporcionen una interfaz adecuada.
2. Ejemplos de manzanas y naranjas
La idea de un adaptador se puede ilustrar mediante el siguiente ejemplo simple. Este ejemplo es hacer una naranja "adaptarse" a una manzana. Como se muestra en la figura a continuación:
Como puede ver en la mitad inferior de la imagen de arriba, el adaptador contiene una instancia de naranja y hereda la clase de Apple. El objeto naranja se coloca en el adaptador, por lo que la naranja actúa como una manzana. El diagrama lógico correspondiente es el siguiente:
3. Ejemplos de enchufes de caja de socket
En la figura anterior, podemos conectar con éxito el enchufe en el enchufe izquierdo a través del adaptador medio.
4. Implementación del código del adaptador de enchufe
/** Modo adaptador (adaptador): convierte una interfaz de una clase en otra interfaz que el cliente desea. El modo adaptador permite clases que originalmente no pudieron trabajar juntas debido a la incompatibilidad de las interfaces para trabajar juntas. */clase AdapterDemo {public static void main (string [] args) {// power a comienza a trabajar powerA = new powerAimpl (); inicio (powera); PowerB powerB = new PowerBImpl (); PowerAAdapter PA = nuevo PowerAadapter (PowerB); inicio (PA); } // Método de definición: powerA funciona public static void start (powera powera) {system.out.println (".... algún código duplicado ......"); power.insert (); System.out.println ("... algún código duplicado .../n"); } /** Public static void start (powerb powerb) {system.out.println ("... algún código duplicado ......"); powerb.connect (); System.out.println ("... algún código duplicado ......"); } */} // Definir la clase de adaptador PowerAAdapter implementa powerA {private powerb powerb; // interfaz para adaptar públicamente powerAdapter (powerb powerb) {this.powerb = powerb; } // Implementación de la interfaz PowerA, debe implementar los métodos en Power Public void insert () {powerb.connect (); }}/** power a interfaz*/interface powerA {public void insert ();} class powerAimpl implementa powerA {public void insert () {system.out.println ("Power Se inserta una interfaz, comienza a funcionar"); }}/** Power B Interface*/Interface Powerb {public void Connect ();} La clase PowerBImpl implementa PowerB {public void Connect () {System.out.println ("La interfaz de Power B está conectada, comienza a funcionar"); }} En este ejemplo, queremos que PowerB llame al código en el método Start () en PowerA; Por supuesto, no queremos repetir las 23 o 25 líneas de código comentadas. En este momento, puede usar el modo adaptador.
La explicación del código anterior:
Línea 30: Comience a definir el adaptador, que también es el comienzo del código central;
Líneas 33 y 34: pase PowerB a través del método de construcción;
Código de línea 37: dado que debe implementar la interfaz powerA, es necesario implementar el método insert () en powerA;
Código de línea 38: llamamos al método de PowerB Connect () en el método insert () de PowerA;
Inmediatamente después, las 10, 11 y 12 líneas de código significa: cuando se nuevo PowerB, lo pasamos al adaptador PowerAdapter, iniciamos el adaptador y luego PowerB ejecutará el código en las líneas 16, 24 y 18.
Nota: El orden de 16, 24 y 18 no está equivocado, porque en el adaptador, hemos reemplazado 24 líneas de código con la línea 17.
El efecto de operación es el siguiente:
Del mismo modo, si también quiero usar PowerA como PowerB, puedo definir otro adaptador PowerBadapter para implementar un adaptador bidireccional.
5. Resumen
El código comentado en las líneas 23 y 25 anteriores indica que es un gran código duplicado y no se ajusta al pensamiento orientado a objetos. Ahora imaginamos un ejemplo de que nuestro proyecto está en línea y los clientes lo están utilizando, pero luego se ha agregado alguna nueva demanda. Existe un principio OO para los objetos orientados a objetos: cierre la modificación (después de conectarse en línea, trate de no modificar el código, de lo contrario puede ocurrir una reacción en cadena, lo que resulta en problemas con otros códigos llamando a este método) y abierto a extensiones (nuevos métodos definidos por usted mismo, que otros aún no han llamado, por lo que, por supuesto, podemos modificarlos). En este punto, podemos reducir este código duplicado a través de adaptadores.
6. Principios de diseño OO
• Programación orientada a la interfaz (programación orientada a resumen)
• Cambios de paquete
• Use más combinaciones, use menos herencia
• Cerca de las modificaciones para abrir a extensiones
Personalmente, estos principios de diseño deben profundizarse continuamente en la práctica, por lo que no los describiré demasiado aquí ~
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.