étude "Head First Design Patterns" notes - mode adaptateur

Maintenant est venu le mode adaptateur, le nom de la carte l'indique, est de rendre le code existant afin de jouer le rôle d'un autre personnage à travers l'adaptateur. Nous prenons un coup d'oeil par le code.

cas

Les canards et les dindes, sont appelés animal voler, Construisons un canard d'interface et les interfaces de dindes, et leurs mises en œuvre créent deux classes, respectivement.

public interface Duck {
    void quack();
    void fly();
}

public class MallardDuck implements Duck {
    @Override
    public void quack() {
        System.out.println("quack");
    }

    @Override
    public void fly() {
        System.out.println("fly");
    }
}

public interface Turkey {
    void gobble();
    void fly();
}

public class TurkeyAdapter implements Duck {
    Turkey turkey;

    public TurkeyAdapter(Turkey turkey) {
        this.turkey = turkey;
    }

    @Override
    public void quack() {
        turkey.gobble();
    }

    @Override
    public void fly() {
        for (int i = 0; i < 5; i++) {
            turkey.fly();
        }
    }
}

Suivant est le point culminant, est notre adaptateur, nous voulons faire agir de la Turquie comme un canard, alors nous devons faire de cette classe implémente l'interface de deux méthodes canards, dindes agissent comme objectif de faire le canard, donc nous avons besoin de passer un feu poulet, canard envelopper. Nous avons donc besoin d'une dinde que les propriétés de l'adaptateur. Ensuite, la structure de cette classe est très claire, une dinde de propriété, les interfaces de canard mettent en œuvre deux méthodes.

public class TurkeyAdapter implements Duck {
    Turkey turkey;

    public TurkeyAdapter(Turkey turkey) {
        this.turkey = turkey;
    }

    @Override
    public void quack() {
        turkey.gobble();
    }

    @Override
    public void fly() {
        for (int i = 0; i < 5; i++) {
            turkey.fly();
        }
    }
}

Dans charlatan () méthode, la méthode est appelée méthode turkey.fly () fly appel turkey.gobble () (), parce que la dinde voler près, donc nous avons touché la mouche cinq canard distance.

Les clients utilisant l'adaptateur est la suivante:

  • Les clients à travers la méthode d'interface cible appelle l'adaptateur lance une demande d'un adaptateur.
  • Adaptateur adaptateur d'interface est adapté pour convertir la demande dans une ou plusieurs personnes interface d'appel.
  • Le client reçoit les résultats de l'appel, mais pas au courant de tout cela est dans l'acte d'adaptation en tant que traducteurs.

Maintenant, regardons la définition du motif adaptateur:

L'interface du mode d'adaptation d'une classe, est convertie en une autre interface aux attentes des clients. Adaptateur pour que l'interface d'origine n'est pas compatible avec la classe peut collaborer de façon transparente.

Ce modèle peut être créé grâce à l'adaptateur convertisseur d'interface, de sorte que les interfaces incompatibles deviennent compatibles. Cela permet aux clients de découpler de la mise en œuvre de l'interface.

Publié 26 articles originaux · louange gagné 2 · Vues 2326

Je suppose que tu aimes

Origine blog.csdn.net/qq_42909545/article/details/104971524
conseillé
Classement