Adapter
Design Pattern
Type : structuration
Permet de faire fonctionner un objet
avec une interface
qu'il ne possède pas
Objectif
Est utilisé lorsqu'une classe que l'on veut utiliser
et son interface ne corresponde pas à nos besoins.
Créer une classe réutilisable qui n'a pas besoin
d'avoir des interfaces compatibles.
Motivation
Participants
Target (interface)
- Interface avec laquelle le client va interagir
Client
- Utilise l'interface Target pour envoyer des requêtes
Adapter
- Transmet les requêtes du client à l'adaptee
Adaptee
- Interface existante qui a besoin d'être adaptée pour le besoin du client
Exemple d'utilisation
Shape
Rectangle
Circle
xxxColor
RedColor
BlueColor
le pattern Bridge
sans
xxxColor
RedColor
BlueColor
Exemple d'utilisation
Shape
Rectangle
Circle
le pattern Bridge
avec
xxxColor
RedColor
BlueColor
Color
Bridge
public class NumberSorter{
public List<Integer> sort(List<Integer> numbers){
return new ArrayList<Integer>();
}
}Adaptee
int[] numbers = new int[]{34, 2, 4, 12, 1};
Sorter sorter = new SortListAdapter();
sorter.sort(numbers);
Client
public interface Sorter{
public int[] sort(int[] numbers);
}Target
public class SortListAdapter implements Sorter{
@Override public int[] sort(int[] numbers) {
//convert the array to a List
List<Integer> numberList = new ArrayList<Integer>();
//call the adapter
NumberSorter sorter = new NumberSorter();
numberList = sorter.sort(numberList);
//convert the list back to an array and return
return sortedNumbers;
}
}Adapter
Copy of deck
By Dany Chea
Copy of deck
- 47