Descripción general
Convertir una interfaz a otra interfaz que el usuario desea, el modo adaptador permite clases que no podrían funcionar juntas debido a la incompatibilidad de las interfaces.
Dos métodos de implementación
1. Modo de adaptador de clase:
2. Modo adaptador de objeto:
El diagrama UML del modo adaptador de la clase es el siguiente:
El patrón adaptador de la clase convierte la API de la clase adaptada en la API de la clase de destino.
Los personajes diseñados en la imagen de arriba son:
Objetivo: esta es la interfaz que está buscando.
Rol de origen (Adapee): la interfaz que ahora se necesita para adaptarse.
Rol de adaptador (adaptador): es el núcleo de este modo, y el adaptador convierte la interfaz de origen en la interfaz de destino.
Ejemplo de código:
Target de interfaz {Void Method1 (); Método void2 (); // Espero obtener este método} // La clase fuente no tiene el método en el método2. class adaptee {public void Method1 () {System.out.println ("Method1"); }} El adaptador de clase extiende adaptado implementa el objetivo {@Override public void Method2 () {System.out.println ("Este método de destino"); }} public class Mantest {public static void main (string arg []) {target target = new Adapter (); Target.method2 (); }} El diagrama UML del modo adaptador del objeto es el siguiente:
La idea central es la misma que el modo adaptador de la clase. Solo cambia la clase de adaptador, no hereda la clase adaptada, sino que posee una referencia a la clase Adaptae. El código es el siguiente:
Target de interfaz {Void Method1 (); Void Method2 ();} class adaptee {public void Method1 () {System.out.println ("Method1"); }} El adaptador de clase implementa el objetivo {privado adaptado adaptado; Adaptador público (adaptado adaptado) {this.Adaptee = adaptee; } @Override public void Method2 () {System.out.println ("Este es el método de destino"); } @Override public void Method1 () {// TODO Auto Generado Método STUB adaptee.method1 (); }} public class Mantest {public static void main (String arg []) {target target = new adapter (new adaptee ()); Target.method2 (); }} Ventajas y desventajas del modo adaptador:
Mejor reutilización y mejor escalabilidad. El sistema necesita usar clases existentes, y tales interfaces no satisfacen las necesidades del sistema, por lo que estas funciones pueden reutilizarse mejor a través del modo adaptador. Al implementar la función adaptadora, puede llamar a las funciones que desarrolló por usted mismo para expandir naturalmente las funciones del sistema.
Desventajas: Demasiado uso de adaptadores hará que el sistema sea muy desordenado y difícil de comprender en general.
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.