Maison > Java > javaDidacticiel > Explication détaillée des principes et de l'utilisation du modèle d'adaptateur dans les modèles de conception classiques Java

Explication détaillée des principes et de l'utilisation du modèle d'adaptateur dans les modèles de conception classiques Java

黄舟
Libérer: 2017-08-07 10:49:53
original
1916 Les gens l'ont consulté

Cet article présente principalement le modèle d'adaptateur, un modèle de conception Java classique, explique brièvement le concept et le principe du modèle d'adaptateur, et analyse l'utilisation et les précautions associées du modèle d'adaptateur Java sous forme d'exemples. référez-vous à lui

Cet article décrit le modèle d'adaptateur, un modèle de conception Java classique, avec des exemples. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Le modèle d'adaptateur consiste à adapter l'interface d'une classe à ce qu'attend l'utilisateur, afin que certaines classes qui ne peuvent pas fonctionner ensemble à l'origine en raison d'interfaces incompatibles. Les classes travaillent ensemble pour obtenir les fonctionnalités attendues par les utilisateurs.

Avantages du mode adaptateur :

1 Grâce à l'adaptateur, le client peut appeler une interface unifiée, l'opération est simple et directe. , et la logique du code est compacte, facile à utiliser.
2. Réutilisation du code, le mode adaptateur résout le problème des différentes exigences environnementales et permet la réutilisation du code grâce à l'adaptation.
3. Découplez la classe cible et la classe adaptateur, et réutilisez la classe actuelle en créant une nouvelle classe adaptateur. Il n'est pas nécessaire de modifier à plusieurs reprises le code d'origine pour implémenter le principe d'ouverture et de fermeture.

Il existe deux types de modèles d'adaptateur

1. Modèle d'adaptateur d'objet : Dans ce modèle d'adaptateur, l'adaptateur contient une classe qu'il enveloppe. Exemple. Dans ce cas, l'adaptateur appelle l'entité physique de l'objet encapsulé.
2. Mode adaptateur de classe : Dans ce mode adaptateur, l'adaptateur hérite de la classe implémentée (généralement héritage multiple).

Exemple de code :


/**
* @description:
* 原有的接口功能,比如是给电动车充电功能
*/
public interface FirstBaseIf {
void charging();//充电
}
/**
* 要实现的操作功能
* @description:
*/
public class NewFunction {
public void powerWithTwo(){
System.out.println(“新功能:给电动汽车也可以充电啦”);
}
}
/**
*新建适配器类,来实现对原有接口FirstBaseIf的操作使用
* @description:
*/
public class FunctionAdapter implements FirstBaseIf {
private NewFunction plug;
public FunctionAdapter(NewFunction plug){
this.plug=plug;
}
@Override
public void charging() {//重写原有接口中的方法,从而实现接口转化
System.out.println(“通过适配器转化”);
plug.powerWithTwo();
}
}
//——–测试代码——————-
public class Test {
private FirstBaseIf plug;
public Test(FirstBaseIf plug) {
  this.plug = plug;
}
public static void main(String[] args) {
  NewFunction two = new NewFunction();
  FirstBaseIf three = new FunctionAdapter(two);//这里就是通过适配器实现转换
  Test note = new Test(three);
  note.charge();
}
public void charge() {
  plug.charging();//使用原有接口中的功能
}
}
Copier après la connexion

Résultat d'exécution :

Scénarios applicables :

Dans un programme Java, s'il existe une classe ou une interface abstraite, toutes les méthodes abstraites doivent être réécrites.

Ensuite, s'il y a trop de méthodes abstraites définies dans une interface et que de nombreuses méthodes abstraites dans la sous-classe ne sont pas nécessaires, vous devez concevoir un adaptateur. Dans le développement Android via le langage Java, le modèle d'adaptateur est souvent utilisé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal