Maison > Java > javaDidacticiel > Comment implémenter le modèle d'adaptateur du modèle de conception Java

Comment implémenter le modèle d'adaptateur du modèle de conception Java

WBOY
Libérer: 2023-04-25 10:37:06
avant
1522 Les gens l'ont consulté

    Qu'est-ce que le modèle d'adaptateur

    Le modèle d'adaptateur (Adapter) est défini comme suit : Convertissez l'interface d'une classe en une autre interface souhaitée par le client, afin que les classes qui ne peuvent pas fonctionner ensemble en raison d'interfaces incompatibles puissent fonctionner ensemble . Le modèle d'adaptateur est divisé en deux types : le modèle structurel de classe et le modèle structurel d'objet. Le premier a un degré de couplage entre les classes plus élevé que le second et nécessite que les programmeurs comprennent la structure interne des composants pertinents dans la bibliothèque de composants existante. est relativement rarement utilisé.

    Avantages

    1. Le client peut appeler de manière transparente l'interface cible via l'adaptateur.

    2. Les classes existantes sont réutilisées. Les programmeurs n'ont pas besoin de modifier le code d'origine et de réutiliser les classes d'adaptateur existantes.

    3. Découplez la classe cible et la classe adaptateur pour résoudre le problème des interfaces incohérentes entre la classe cible et la classe adaptateur.

    4. Respectez le principe d'ouverture et de fermeture dans de nombreux scénarios commerciaux.

    Inconvénients

    1. Le processus d'écriture de l'adaptateur doit être pleinement pris en compte en conjonction avec le scénario commercial, ce qui peut augmenter la complexité du système.

    2. Cela augmente la difficulté de lecture du code et réduit la lisibilité du code. Une utilisation excessive d'adaptateurs rendra le code système compliqué.

    Points de connaissance

    Modèle d'adaptateur de classe : il peut être implémenté en utilisant l'héritage multiple. Par exemple, C++ peut définir une classe d'adaptateur pour hériter à la fois de l'interface métier du système actuel et des interfaces de composants qui existent déjà dans la bibliothèque de composants existante ; Java ne prend pas en charge l'héritage multiple. Cependant, vous pouvez définir une classe d'adaptateur pour implémenter l'interface métier du système actuel tout en héritant des composants qui existent déjà dans la bibliothèque de composants existante.

    Modèle d'adaptateur d'objet : vous pouvez introduire des composants qui ont été implémentés dans la bibliothèque de composants existante dans la classe d'adaptateur, qui implémente également l'interface métier du système actuel. Présentons maintenant leur structure de base.

    Implémentation du mode Adaptateur

    Cas : Hongmao utilise des cristaux de feu pour activer le Fire Dance Whirlwind Sword Qi

    Interface cible : Changhong Sword Qi

    Classe d'adapté : Fire Dance Whirlwind Sword Qi

    Adaptateur (Adaptateur) Catégorie : Fire Crystal

    Hongmao ne peut actuellement activer que le Changhong Sword Qi, mais s'il souhaite activer le Fire Dance Whirlwind Sword Qi

    , il ne peut utiliser que le pouvoir du cristal de feu pour transformer le Changhong Sword Qi en Fire Dance Whirlwind Sword Qi

    Remarque : ce que je suis ici, c'est adapter le Fire Dance Whirlwind Sword Qi à l'adaptateur de classe Changhong Sword Qi

    Changhong Sword Qi

    déclare une interface pour le Changhong Sword Qi, y compris une méthode abstraite pour activer le Changhong Sword Qi.

    public interface Chang {
        void chang();
    }
    Copier après la connexion
    Copier après la connexion
    Fire Dance Whirlwind Sword Qi

    La catégorie Fire Dance Whirlwind Sword Qi, déclare une méthode pour activer le Fire Dance Whirlwind Sword Qi.

    public class Huo {
        public void huo() {
            System.out.println("火舞旋风剑气");
        }
    }
    Copier après la connexion
    Copier après la connexion
    Fire Crystal

    La classe Fire Crystal hérite de la classe Fire Dance Whirlwind Sword Qi (Objectif : après l'héritage, vous pouvez utiliser les méthodes de la classe) et implémente l'interface Changhong Sword Qi (Objectif : réaliser l'activation de Méthode Changhong Sword Qi). Parmi les méthodes d'activation du Changhong Sword Qi, la méthode d'activation du Fire Dance Whirlwind Sword Qi est utilisée.

    public class JingShi extends Huo implements Chang {
        @Override
        public void chang() {
            huo();
        }
    }
    Copier après la connexion
    test
    public class Demo {
        public static void main(String[] args) {
            Chang haha = new JingShi();
            haha.chang();
        }
    }
    Copier après la connexion

    Comment implémenter le modèle dadaptateur du modèle de conception Java

    object adapter

    changhong jianqi

    declares une interface de Changhong jianqi, y compris une méthode abstraite pour activer le changhong jianqi

    rreee
    fire danse tourbillon déclare une méthode pour activer Fire Dance Whirlwind Sword Qi.
    public interface Chang {
        void chang();
    }
    Copier après la connexion
    Copier après la connexion

    Fire Crystal

    La classe Fire Crystal implémente l'interface Changhong Sword Qi, déclare les propriétés d'un Fire Dance Whirlwind Sword Qi et implémente la méthode de stimulation du Changhong Sword Qi. La méthode d'activation du Fire Dance Whirlwind Sword Qi est incluse dans la méthode d'activation du Changhong Sword Qi.
    public class Huo {
        public void huo() {
            System.out.println("火舞旋风剑气");
        }
    }
    Copier après la connexion
    Copier après la connexion

    Test

    Créez un nouvel objet Fire Dance Whirlwind Sword Qi, un nouvel objet Fire Crystal Stone et passez l'objet Fire Dance Whirlwind Sword Qi dans l'objet Fire Crystal Stone.
    public class JingShi implements Chang {
        private Huo huo;
        JingShi() {
        }
        JingShi(Huo huo) {
            this.huo = huo;
        }
        @Override
        public void chang() {
            huo.huo();
        }
    }
    Copier après la connexion

    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:yisu.com
    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