# Aprendizaje de patrones adaptadores de patrones de diseño Java

Modo adaptador

Convierta la interfaz de una clase en otra interfaz que desee el cliente. El patrón de adaptador permite que las clases que no pueden trabajar juntas debido a interfaces incompatibles trabajen juntas.

En el modo de adaptador, resolvemos el problema de la incompatibilidad de la interfaz agregando una nueva clase de adaptador, para que las clases que no tienen ninguna relación puedan trabajar juntas.

Roles

Destino (clase abstracta de destino)

Defina la interfaz requerida, que puede ser una clase abstracta o una interfaz o una clase concreta.

AdapterClass (clase de adaptador)

El adaptador hereda la clase adaptada, implementa el Target y llama al método de la superclase en el método de implementación de la interfaz.

MatchesClass (clase adaptadora)

El adaptador es el rol que se va a adaptar. Define una interfaz existente que necesita ser adaptada. La clase de adaptador es generalmente una clase concreta que contiene los métodos comerciales que el cliente desea utilizar. En algunos casos, puede No hay código fuente para la clase de adaptador.

Patrón de adaptador de clase

Inserte la descripción de la imagen aquí

  • La clase emparejada (MatchesClass)
public class ClassAdapter {
    
    

    public void testMethodOne(){
    
    
        System.out.println("被适配的方法!");
    }
}
  • Clase de adaptador (AdapterClass)
public class Adapter extends ClassAdapter implements TargetInterface  {
    
    
    
    /**
     * @Author LiDong
     * @Description //TODO 重写接口中的方法,调用超类的方法
     * @Date 21:24 2020/12/5
     * @Param [] 
     * @return void
     **/
    @Override
    public void testMethod() {
    
    
        System.out.println("调用Adapter的testMethod()!");
        super.testMethodOne();
    }
}
  • Clase abstracta de destino
public interface TargetInterface {
    
    

    void testMethod();
}
  • Clase de prueba
public static void main(String[] args) {
    
    
    TargetInterface targetInterface = new Adapter();
    targetInterface.testMethod();
}

Patrón de adaptador de objeto

Inserte la descripción de la imagen aquí
La diferencia entre los adaptadores de objetos y los adaptadores de clases es que los adaptadores de clases completan la adaptación a través de la herencia, mientras que los adaptadores de objetos completan la adaptación llamando a las propiedades del objeto.

public class Adapter  implements TargetInterface {
    
    

    private ClassAdapter classAdapter = new ClassAdapter();

    /**
     * @Author LiDong
     * @Description //TODO 重写接口中的方法,对象调用类的方法
     * @Date 21:24 2020/12/5
     * @Param [] 
     * @return void
     **/
    @Override
    public void testMethod() {
    
    
        System.out.println("调用Adapter的testMethod()!");
        classAdapter.testMethodOne();
    }
}
La ventaja principal
  • Desacople la clase de destino y la clase de adaptador y reutilice la clase de adaptador existente introduciendo una clase de adaptador sin modificar la estructura original.

  • Incrementar la transparencia y la reutilización de la clase.

  • La flexibilidad y la escalabilidad son muy buenas, mediante el uso de archivos de configuración, puede reemplazar fácilmente el adaptador

  • Desacople la clase de destino y la clase de adaptador y reutilice la clase de adaptador existente introduciendo una clase de adaptador sin modificar la estructura original.

  • Incrementar la transparencia y la reutilización de la clase.

  • La flexibilidad y la escalabilidad son muy buenas, mediante el uso de archivos de configuración, puede reemplazar fácilmente el adaptador

Supongo que te gusta

Origin blog.csdn.net/qq_37248504/article/details/110728398
Recomendado
Clasificación