Este artículo describe la función del adaptador de potencia en las aplicaciones del modo de adaptador Java. Compártelo para su referencia, como sigue:
1. Definición de patrones
Hay dos modos de adaptador
1 modo de adaptador de objeto En este modo de adaptador, el adaptador contiene una entidad física del objeto de clase que envuelve.
Modo adaptador de clase 2 En este modo de adaptador, el adaptador hereda de la clase implementada.
2. Ejemplos del modelo
1 análisis de patrones
Tomamos prestado un adaptador de potencia de lápiz para ilustrar este modo.
Adaptador de potencia de la computadora portátil de potencia de CA ya existente
2 Modelado estático del modo adaptador
3 ejemplos de código
3.1 Establecimiento de la fuente de alimentación abstracta
paquete com.demo.power;/** * Clase base de potencia * * @author * */public abstract class absbasePower {// valor de voltaje float float potencia; // Unidad de cadena privada Unidad = "V"; // Construye el método público ABSBASEPOWER (Float Power) {this.Power = Power; } public float getPower () {return power; } public void setPower (float power) {this.power = power; } public String getunit () {Unidad de retorno; } public void setUnit (unidad de cadena) {this.unit = unit; }}3.2 interfaz de alimentación de 220V
Paquete com.demo.power.v220;/** * 220V Interfaz de alimentación * * @author * */public interfaz ipower220 {// 220V AC Fuente de alimentación Impresión de publicidad public para la salida220V ();}3.3 Clase de implementación de la fuente de alimentación de 220V
paquete com.demo.power.v220; import com.demo.power.absbasepower;/** * 220V Fuente de alimentación * * @author * */public class Power220 extiende ABSBASEPOWER Implementos ipower220 {// Construye el método Public Power220 () {Super (220); } // 220V Potencia de salida public void output220v () {system.out.println ("--- esto es [" + this.getPower () + this.getUnit () + "] potencia! ..."); }}3.4 interfaz de alimentación de 12V
paquete com.demo.power.v12;/** * 12V interfaz de alimentación * * @author * */public interfaz ipower12 {// 12V de alimentación imprimiendo publicidad public para salida12v ();}3.5 Clase de implementación de la fuente de alimentación de 12 V
paquete com.demo.power.v12; import com.demo.power.absbasepower;/** * Fuente de alimentación normal de 12V * * @author * */public class Power12 extiende AbsBasepower implementos ipower12 {// 12V Método de construcción de suministro de alimentación Puder12 () {Super (12); } // 12V Potencia de salida public void output12v () {System.out.println ("--- esto es [" + this.getPower () + this.getunit () + "] potencia! ..."); }}3.6 Adaptador de objeto de alimentación de 12V
paquete com.demo.Adapter; import com.demo.power.absbasePower; import com.demo.power.v12.ipower12;/** * Power Adapter (implementa la interfaz del objeto de destino, namely: 12v interfaz de potencia) * * @author * */public class AdapterPower12 implementos ipower12 {// Object a objeción privado para ser converted privado privado Absbasepower; // El método de construcción del adaptador pasa el objeto que se convertirá en AdapterPower Public12 (AbsBasepower ABSBASEPOWER) {this.absBasepower = AbsBasepower; } // Implementar el método de objeto de destino public void output12v () {// Obtener el valor de potencia externo float powerFloat = this.absbasepower.getPower (); // Realizar conversión de potencia if (powerFloat == 380) {// 380V Conversión de potencia PowerFloat = PowerFloat / 31.67f; } else if (powerFloat == 220) {// 220V Conversión de potencia PowerFloat = PowerFloat / 18.33f; } else if (powerFloat == 110) {// 110V Conversión de potencia PowerFloat = PowerFloat / 9.17f; } else {System.out.println ("---- ¿No se puede adaptar al poder! ..."); devolver; } // procesa el resultado de conversión powerFloat = (int) (powerFloat * 10) / 10.0f; System.out.println ("---- esto es [" + powerfloat + this.absbasepower.getunit () + "] potencia! ..."); }}3.7 Adaptador de potencia de 12V
paquete com.demo.adapter; import com.demo.power.absbasepower; import com.demo.power.v12.ipower12;/** * Power Adapter (implementa la interfaz del objeto de destino, namely: 12V Power Interface) Modo de adaptador de clase * * @Author * */public class AadterPower12 Extends Extends ABSBASEPower El método pasa el objeto que se convertirá en AdapterPowerPower12Ext Public (AbsBasepower ABSBASEPOWER) {super (absBASEPower.getPower ()); } // Implementar el método de objeto de destino @Override public void output12v () {// Obtener valor de potencia externo float powerFloat = this.getPower (); // Realizar conversión de potencia if (powerFloat == 380) {// 380V Conversión de potencia PowerFloat = PowerFloat / 31.67f; } else if (powerFloat == 220) {// 220V Conversión de potencia PowerFloat = PowerFloat / 18.33f; } else if (powerFloat == 110) {// 110V Conversión de potencia PowerFloat = PowerFloat / 9.17f; } else {System.out.println ("---- ¿No se puede adaptar al poder! ..."); devolver; } // procesa el resultado de conversión powerFloat = (int) (powerFloat * 10) / 10.0f; System.out.println ("---- esto es [" + powerfloat + this.getunit () + "] potencia! ..."); }}3.8 Adaptador de prueba
paquete com.demo; import com.demo.Adapter.AdapterPower12; import com.demo.adapter.AdapterPower12ext; import Cliente de clase { / ** * @param args * / public static void main (string [] args) {// ¡Primero generamos un objeto de fuente de alimentación de 220V! Power220 power220 = new Power220 (); power220.output220v (); // ¡A continuación, estamos generando un objeto de fuente de alimentación de 12V! Ipower12 power12 = new Power12 (); power12.output12v (); // Finalmente, usamos el adaptador de potencia para convertir la fuente de alimentación de 220V a una fuente de alimentación de 12V. System.out.println ("/n ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- System.out.println ("----- El adaptador de clase, el adaptador, la conversión de la conversión!");3.9 Resultados de la operación
---- ¡Esta es la fuente de alimentación [220.0V]! ...
---- ¡Esta es la fuente de alimentación [12.0V]! ...
---- El adaptador de potencia se está convirtiendo ...
---- ¡Esta es la fuente de alimentación [12.0V]! ...
--- ¡La conversión del adaptador de potencia ha terminado!
---- El adaptador de potencia del adaptador se está convirtiendo ...
---- ¡Esta es la fuente de alimentación [12.0V]! ...
---- La conversión del adaptador de potencia del adaptador de clase termina!
3. Principios de diseño
1 Uso combinaciones de objetos, programación abstracta orientada a la interfaz
2 Principio "abierto y cerrado"
4. Use ocasiones
1 Cuando la estructura del sistema de software debe actualizarse o ampliarse, y no desea afectar la operación estable del sistema original
2 Cuando la diferencia entre las clases de conversión no es muy grande
3 Cuando desee crear una clase reutilizable que pueda funcionar junto con otras clases no relacionadas o imprevisibles
5. Diagrama de clase estática del modo adaptador de clase y modo adaptador de objeto
Para obtener más información sobre los algoritmos de Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación de Java DOM", "Resumen de Java Archivo y TIPS de operación de directorio" y "Summary of Java Cache Operation Tips" TIPS ""
Espero que este artículo sea útil para la programación Java de todos.