Cet article décrit la fonction de l'adaptateur d'alimentation dans les applications en mode adaptateur Java. Partagez-le pour votre référence, comme suit:
1. Définition du modèle
Il y a deux modes d'adaptateur
1 mode adaptateur d'objet Dans ce mode adaptateur, l'adaptateur contient une entité physique de l'objet de classe qu'il enveloppe.
Mode adaptateur de classe 2 Dans ce mode adaptateur, l'adaptateur hérite de la classe implémentée.
2. Exemples du modèle
1 analyse de modèle
Nous empruntons un adaptateur de puissance au crayon pour illustrer ce mode.
Adaptateur d'alimentation de l'ordinateur portable déjà existant
2 Modélisation statique du mode adaptateur
3 exemples de code
3.1 Établissement d'alimentation abstraite
package com.demo.power; / ** * Classe de base de puissance * * @author * * / classe abstraite publique AbsBasePower {// Valeur de tension Power Float Power; // Unité d'unité de chaîne privée = "V"; // Construire la méthode publique ABSBASPOWER (Float Power) {this.power = puissance; } public float getPower () {return power; } public void setPower (float power) {this.power = puissance; } public String getUnit () {return Unit; } public void setunit (String Unit) {this.unit = unit; }}3.2 Interface d'alimentation 220 V
Package com.demo.power.v220; / ** * 220v Interface d'alimentation * * @Author * * / interface publique ipower220 {// 220v ALIMENTATION ALIMENTATION IMPRESSION PUBLIC VOID SORTIE220V ();}3.3 Classe d'implémentation d'alimentation 220V
package com.demo.power.v220; import com.demo.power.absbasoPower; / ** * 220v alimentation * * @Author * * / public class Power220 étend ABSBASEPOWER implémente iPower220 {// Construct Method Public Power220 () {super (220); } // (220V Sortie Public public Void Output220v () {System.out.println ("---- Ceci est [" + this.getPower () + this.getUnit () + "] Power! ..."); }}3.4 Interface d'alimentation 12V
package com.demo.power.v12; / ** * 12v Interface d'alimentation * * @author * * / interface publique ipower12 {// 12v alimentation imprimement public void output12v ();}3.5 Classe d'implémentation d'alimentation 12V
Package com.demo.power.v12; import com.demo.power.absbasopower; / ** * alimentation normale 12V * * @author * * / public class Power12 étend AbsBasePower implémente ipower12 {// 12v Méthode de construction d'alimentation Power12 () {Super (12); } // 12v POSE DE SORTIE PUBLIC VOID OUTPUT12V () {System.out.println ("--- Ceci est [" + this.getPower () + this.getUnit () + "] Power! ..."); }}3.6 Adaptateur d'objet Power 12V
package com.demo.adapter; import com.demo.power.absbasepower; import com.demo.power.v12.ipower12; / ** * adaptateur de puissance (implémente l'interface d'objet cible, à savoir: 12v interface de puissance) * * @Author * * / public Class adapterpower12 Implementer ipower12 {// Object to Be être converted privily ABSBASEPOWER ABASOWER; // La méthode de construction de l'adaptateur transmet l'objet à convertir en AdaptterPower 12 public (AbsbaseSower ABSBASPOWER) {this.absbasePower = ABSBasePower; } // Implémentez la méthode d'objet cible public void Output12v () {// Obtenez la valeur de puissance externe float powerfloat = this.absbasepower.getPower (); // Effectuer la conversion de puissance if (powerfloat == 380) {// 380v Power Conversion PowerFloat = PowerFloat / 31.67f; } else if (powerfloat == 220) {// 220v Power Conversion PowerFloat = PowerFloat / 18.33f; } else if (powerfloat == 110) {// 110V Power Conversion PowerFloat = PowerFloat / 9.17f; } else {System.out.println ("---- ne peut pas s'adapter au pouvoir! ..."); retour; } // Traitez le résultat de conversion PowerFloat = (int) (PowerFloat * 10) / 10.0f; System.out.println ("---- Ceci est [" + powerfloat + this.absbasepower.getUnit () + "] Power! ..."); }}3.7 Adaptateur électrique 12V
Package com.demo.adapter; import com.demo.power.absbase-din passe l'objet à convertir en public AdapterPower12Ext (ABSBASEPOWER ABSBASEPOWER) {Super (AbsBasePower.getPower ()); } // Implémentez la méthode d'objet cible @Override public void Output12v () {// obtenir une valeur de puissance externe float powerfloat = this.getPower (); // Effectuer la conversion de puissance if (powerfloat == 380) {// 380v Power Conversion PowerFloat = PowerFloat / 31.67f; } else if (powerfloat == 220) {// 220v Power Conversion PowerFloat = PowerFloat / 18.33f; } else if (powerfloat == 110) {// 110V Power Conversion PowerFloat = PowerFloat / 9.17f; } else {System.out.println ("---- ne peut pas s'adapter au pouvoir! ..."); retour; } // Traitez le résultat de conversion PowerFloat = (int) (PowerFloat * 10) / 10.0f; System.out.println ("---- c'est [" + powerfloat + this.getUnit () + "] Power! ..."); }}3.8 Adaptateur de test
Package com.demo; import com.demo.adapter.adapterpower12; import com.demo.adapter.adapterpower12ext; import com.demo.power.v12.ipower12; import com.demo.power.v12.power12; import com.demo.power.v220.power220; / ** * Client Program Call * * @author * / public Class Client {* ** * * Customer Program Calle / ** * @param args * / public static void main (String [] args) {// nous générons d'abord un objet d'alimentation électrique 220V! Power220 Power220 = new Power220 (); power220.output220v (); // Ensuite, nous générons un objet d'alimentation 12V! Ipower12 power12 = new Power12 (); Power12.Output12v (); // Enfin, nous utilisons l'adaptateur d'alimentation pour convertir l'alimentation 220V en une alimentation 12V! System.out.println ("/ n ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println ("----- La conversion de l'adaptateur d'adaptateur de classe se termine!");3.9 Résultats de l'opération
---- C'est l'alimentation [220.0V]! ...
---- C'est l'alimentation [12.0v]! ...
---- L'adaptateur d'alimentation est converti ...
---- C'est l'alimentation [12.0v]! ...
--- La conversion de l'adaptateur de puissance est terminée!
---- L'adaptateur d'adaptateur est converti ...
---- C'est l'alimentation [12.0v]! ...
---- La conversion de l'adaptateur d'adaptateur de classe se termine!
3. Principes de conception
1 utilisation d'objets, programmation orientée vers l'interface et abstraite
Principe "ouvert et fermé"
4. Utiliser des occasions
1 Lorsque la structure du système logiciel doit être mise à niveau ou élargie, et ne veut pas affecter le fonctionnement stable du système d'origine
2 Lorsque la différence entre les classes de conversion n'est pas très grande
3 Lorsque vous souhaitez créer une classe réutilisable qui peut fonctionner en conjonction avec d'autres classes non apparentées ou imprévisibles
5. Diagramme de classe statique du mode adaptateur de classe et mode adaptateur d'objet
Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.