Accueil Technologie
Qu’est-ce que le modèle d’adaptation et comment l’utiliser ?

Qu’est-ce que le modèle d’adaptation et comment l’utiliser ?

Avec l’essor de l’architecture orientée services (SOA), de plus en plus d’organisations utilisent des services tiers pour leurs systèmes d’entreprise. Ces entreprises doivent s’adapter à un environnement commercial en évolution rapide, ce qui peut signifier l’abandon des services d’un fournisseur de services pour un autre.


Dans ce cas, l’architecture existante d’une entreprise peut être incompatible avec celle d’un nouveau fournisseur. Au lieu de perdre des mois à réécrire le code de l’entreprise pour le rendre compatible avec le nouveau logiciel, une entreprise peut utiliser le modèle de conception adaptateur.

Qu’est-ce que le modèle de conception d’adaptateur ?

Le modèle d’adaptateur permet à des classes qui ont des interfaces incompatibles de fonctionner ensemble. Pour ce faire, il convertit l’interface d’une classe existante (ou d’un logiciel) en une interface attendue par un client (ou un service). Il existe deux types d’adaptateurs : les adaptateurs d’objets et les adaptateurs de classes.

L’adaptateur d’objet utilise la composition pour envelopper l’adaptateur avec l’adaptateur, produisant effectivement l’interface que le client attend. Ainsi, si le client attend une chaîne de caractères, l’adaptateur prendra un entier (l’adaptateur) et lui donnera les caractéristiques d’une chaîne de caractères.

Adaptateur d'objet

Le diagramme de classe ci-dessus représente l’adaptateur d’objet. Le site classe adaptateur implémente le interface ciblece qui lui permet d’accéder à toutes les méthodes de l’interface. Ensuite, il adapte une adaptateur et enveloppe que adaptateur avec le interface cible méthodes.

L’adaptateur de classe utilise l’héritage multiple, où la classe de l’adaptateur est une sous-classe à la fois de l’adaptateur et de la classe cible. Le diagramme de classes ci-dessous représente l’adaptateur de classe, que vous êtes libre d’utiliser dans les langages de programmation qui prennent en charge l’héritage multiple.

Adaptateur de classe

Mise en œuvre du modèle de conception de l’adaptateur en Java

Cette application implémente l’adaptateur d’objet. Cet exemple d’application simule une organisation financière qui passe de l’utilisation et du traitement des cartes de paiement aux cartes de crédit. Cette organisation utilisait à l’origine l’interface de carte de crédit suivante :

 public interface ChargeCard {
  public void monthlyBalance();
  public void lateFee();
  public void Annualfee();
}

Un type populaire de carte de paiement que le système de cette organisation traite est la carte plum :

 public class PlumCard implements ChargeCard {
  private int cardNo;
  private String customerName;
  private double balance;

  // primary constructor
  public PlumCard(int cardNo, String customerName, double balance) {
    this.cardNo = cardNo;
    this.customerName = customerName;
    this.balance = balance;
  }

  // getters and setters
  public int getCardNo() {
    return cardNo;
  }

  public void setCardNo(int cardNo) {
    this.cardNo = cardNo;
  }

  public String getCustomerName() {
    return customerName;
  }

  public void setCustomerName(String customerName) {
    this.customerName = customerName;
  }

  public double getBalance() {
    return balance;
  }

  public void setBalance(double balance) {
    this.balance = balance;
  }
   
  @Override
  public void monthlyBalance() {
    System.out.println("In January " + this.customerName + " spent " + this.balance);
  }

  @Override
  public void lateFee() {
    System.out.println(this.customerName + " monthly latefee is $80.00");
  }

  @Override
  public void Annualfee() {
    System.out.println(this.customerName + " annual fee is $200.00");
  }
}

Cette institution financière est en train de passer aux cartes de crédit et de supprimer progressivement les cartes de paiement, de sorte que certains de ses clients ont maintenant des cartes de crédit :

 public interface CreditCard {
  public void monthlyMinPayment();
  public void interest();
  public void Annualfee();
}

Le système d’entreprise de l’institution financière ne traite plus que les cartes de crédit, car elle envisage de mettre fin à l’utilisation des cartes de paiement dans l’année à venir. Mais la plupart de leurs clients utilisent encore des cartes de crédit. Les ingénieurs ont donc décidé qu’il était préférable d’implémenter un adaptateur jusqu’à ce que tous les clients passent à la carte de crédit.

 public class ChargeCardAdapter implements CreditCard {
  ChargeCard chargeCard;

  public ChargeCardAdapter(ChargeCard chargeCard) {
    this.chargeCard = chargeCard;
  }

  @Override
  public void monthlyMinPayment() {
    this.chargeCard.monthlyBalance();
  }

  @Override
  public void interest() {
    this.chargeCard.lateFee();
  }

  @Override
  public void Annualfee() {
    this.chargeCard.Annualfee();
  }
}

Cette classe Java ChargeCardAdapter implémente l’interface Java CreditCard. Elle adapte ChargeCard (l’adaptateur), en lui donnant les caractéristiques d’une carte de crédit. Par exemple, le système traitera les frais d’intérêt d’une carte de crédit, qui sont les frais de retard d’un client de ChargeCard qui ne s’est pas encore converti.

Avantages de l’utilisation du modèle de l’adaptateur

Le principal avantage de l’utilisation du modèle d’adaptateur est qu’il permet aux clients d’utiliser de nouveaux services, bibliothèques et fonctionnalités sans modifier leur code. Cela favorise l’évolutivité des applications.

Un autre avantage est que ce modèle est également flexible. Le modèle d’adaptateur fournit deux méthodes de mise en œuvre : les adaptateurs d’objet et les adaptateurs de classe.

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x