5. El modo de adaptador de modo de diseño toma el cargador de teléfono móvil como ejemplo

Espera, espera ~

Continuar con el modo de diseño, Nima dejó de escribir por un tiempo y no quería escribir, debemos ceñirnos a él ~ Hoy trae el modo de adaptador

Definición a la antigua: convierta la interfaz de una clase en otra interfaz que el cliente espera, y el adaptador permite que las clases con interfaces incompatibles cooperen entre sí. Esta definición es buena, diciendo que la función del adaptador es convertir una interfaz a otra.

Encontré dos imágenes para explicar bien el modo adaptador:
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Estas dos imágenes son una buena ilustración de la función del adaptador. Supongamos que compré una versión europea de HTC G17 y estaba equipado con un convertidor de enchufe. Este convertidor de enchufe se utiliza como adaptador. Echemos un poco de explicación del código. Por ejemplo, los cargadores de teléfonos móviles son generalmente de aproximadamente 5 V. El voltaje de CA de nuestro hogar es de 220 V, por lo que la carga del teléfono móvil necesita un adaptador (bucker). Los términos físicos se utilizan incorrectamente, por favor perdóneme.

El primer teléfono móvil: Mobile.java

package com.zhy.pattern.adapter;
 
public class Mobile
{
	/**
	 * 充电
	 * @param power 
	 */
	public void inputPower(V5Power power)
	{
		int provideV5Power = power.provideV5Power();
		System.out.println("手机(客户端):我需要5V电压充电,现在是-->" + provideV5Power + "V");
	}
}

Se puede ver que el teléfono móvil se basa en una interfaz que proporciona un voltaje de 5V:

package com.zhy.pattern.adapter;
/**
 * 提供5V电压的一个接口
 * @author zhy
 *
 */
public interface V5Power
{
	public int provideV5Power();
}

Entonces lo que tenemos es 220V AC doméstico:

package com.zhy.pattern.adapter;
 
/**
 * 家用220V交流电
 * @author zhy
 *
 */
public class V220Power
{
	/**
	 * 提供220V电压
	 * @return
	 */
	public int provideV220Power()
	{
		System.out.println("我提供220V交流电压。");
		return 220 ; 
	}
}

A continuación, necesitamos un adaptador para completar el papel de 220V a 5V:

package com.zhy.pattern.adapter;
 
/**
 * 适配器,把220V电压变成5V
 * @author zhy
 *
 */
public class V5PowerAdapter implements V5Power
{
	/**
	 * 组合的方式
	 */
	private V220Power v220Power ;
	
	public V5PowerAdapter(V220Power v220Power)
	{
		this.v220Power = v220Power ;
	}
 
	@Override
	public int provideV5Power()
	{
		int power = v220Power.provideV220Power() ;
		//power经过各种操作-->5 
		System.out.println("适配器:我悄悄的适配了电压。");
		return 5 ; 
	} 
	
}

En la prueba final, cargamos el teléfono:

package com.zhy.pattern.adapter;
 
public class Test
{
	public static void main(String[] args)
	{
		Mobile mobile = new Mobile();
		V5Power v5Power = new V5PowerAdapter(new V220Power()) ; 
		mobile.inputPower(v5Power);
	}
}

Salida:

现有类:我提供220V交流电压。
适配器:我悄悄的适配了电压。
手机(客户端):我需要5V电压充电,现在是-->5V

Se puede ver que hemos usado un adaptador para convertir 220V a 5V y luego proporcionarlo al teléfono móvil, y usamos la combinación (principio de diseño OO), el teléfono móvil original y la categoría de voltaje de 200V no necesitan cambiarse, y el teléfono móvil (cliente Terminal) y 220V (persona adaptada) completamente desacoplados.
Finalmente, dibuje un diagrama de clases uml para que todos lo entiendan:

Inserte la descripción de la imagen aquí

Lo anterior es el diagrama de clases del adaptador y el siguiente es el diagrama de clases de nuestro ejemplo. No está mal hacer un dibujo, de lo contrario, el software se instalará gratis. . . .

Supongo que te gusta

Origin blog.csdn.net/GTC_GZ/article/details/108742702
Recomendado
Clasificación