Skip to content

Commit 36b1d62

Browse files
Create callback in French
translated callback file
1 parent b375919 commit 36b1d62

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed

localization/fr/callback

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
title: "Patron de Rappel (Callback) en Java : Maîtriser la Communication Asynchrone"
2+
shortTitle: Callback
3+
description: "Découvrez le Patron de Conception Callback en Java, incluant son objectif, ses scénarios d'utilisation, ses avantages, ses inconvénients, et des exemples concrets. Comprenez comment implémenter et utiliser efficacement les rappels dans vos applications Java."
4+
category: Fonctionnel
5+
language: fr
6+
tag:
7+
- Asynchrone
8+
- Découplage
9+
- Idiome
10+
- Réactif
11+
---
12+
13+
## Aussi connu sous le nom de
14+
15+
* Appel-Après
16+
* Abonnement-Événement
17+
* Écouteur
18+
19+
## Objectif du Patron de Conception Callback
20+
21+
Le Patron de Conception Callback en Java est un morceau de code exécutable passé comme argument à un autre code, qui est censé rappeler (exécuter) cet argument à un moment opportun.
22+
23+
## Explication détaillée du Patron Callback avec des exemples concrets
24+
25+
Exemple concret
26+
27+
> Une analogie dans le monde réel pour le patron de conception Callback peut être trouvée dans l'industrie de la restauration. Imaginez une situation où vous passez une commande dans un restaurant bondé. Au lieu d'attendre au comptoir que votre plat soit prêt, vous fournissez votre numéro de téléphone au caissier. Une fois que votre commande est prête, le personnel de cuisine vous appelle ou vous envoie un SMS pour vous informer que votre repas est prêt à être récupéré.
28+
>
29+
> Dans cette analogie, passer votre commande est analogue à l'initiation d'une tâche asynchrone. Fournir votre numéro de téléphone revient à transmettre une fonction de rappel. La préparation de votre commande par la cuisine représente le traitement asynchrone, et la notification que vous recevez correspond à l'exécution du rappel, vous permettant de récupérer votre repas sans avoir à attendre passivement. Cette séparation entre l'initiation et l'achèvement d'une tâche est l'essence même du patron de conception Callback.
30+
31+
En termes simples
32+
33+
> Un rappel est une méthode passée à un exécuteur qui sera appelée à un moment défini.
34+
35+
Wikipedia dit
36+
37+
> En programmation informatique, un rappel (callback), aussi connu comme une fonction "appel-après", est tout code exécutable qui est passé comme un argument à un autre code ; ce dernier est censé rappeler (exécuter) l'argument à un moment donné.
38+
39+
## Exemple programmatique du Patron Callback en Java
40+
41+
Nous devons être informés après que la tâche exécutée est terminée. Nous transmettons une méthode de rappel à l'exécuteur et attendons qu'il nous rappelle.
42+
43+
`Callback` est une interface simple avec une seule méthode.
44+
45+
```java
46+
public interface Callback {
47+
48+
void call();
49+
}
50+
Ensuite, nous définissons une classe Task qui exécutera le rappel après l'exécution de la tâche.
51+
public abstract class Task {
52+
53+
final void executeWith(Callback callback) {
54+
execute();
55+
Optional.ofNullable(callback).ifPresent(Callback::call);
56+
}
57+
58+
public abstract void execute();
59+
}
60+
61+
@Slf4j
62+
public final class SimpleTask extends Task {
63+
64+
@Override
65+
public void execute() {
66+
LOGGER.info("Effectuer une activité importante puis appeler la méthode de rappel.");
67+
}
68+
}
69+
Enfin, voici comment nous exécutons une tâche et recevons un rappel lorsqu'elle est terminée.
70+
public static void main(final String[] args) {
71+
var task = new SimpleTask();
72+
task.executeWith(() -> LOGGER.info("C'est terminé maintenant."));
73+
}
74+
Sortie du programme :
75+
17:12:11.680 [main] INFO com.iluwatar.callback.SimpleTask -- Effectuer une activité importante puis appeler la méthode de rappel.
76+
17:12:11.682 [main] INFO com.iluwatar.callback.App -- C'est terminé maintenant.
77+
78+
## Quand utiliser le modèle Callback en Java
79+
80+
Utilisez le modèle Callback lorsque :
81+
82+
* Gestion d'événements asynchrones dans les applications GUI ou les systèmes orientés événements
83+
* Mise en œuvre de mécanismes de notification où certains événements doivent déclencher des actions dans d'autres composants
84+
* Découplage des modules ou composants qui doivent interagir sans avoir une dépendance directe
85+
86+
## Applications réelles du modèle Callback en Java
87+
88+
* Les frameworks GUI utilisent souvent des callbacks pour la gestion des événements, comme les interactions utilisateur (clics, pressions de touches)
89+
* Node.js repose fortement sur les callbacks pour les opérations d'I/O non bloquantes
90+
* Les frameworks traitant des opérations asynchrones, comme les Promises en JavaScript, utilisent des callbacks pour gérer la résolution ou le rejet des tâches asynchrones
91+
* Le constructeur [CyclicBarrier](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html#CyclicBarrier%28int,%20java.lang.Runnable%29) peut accepter un callback déclenché chaque fois qu'une barrière est atteinte.
92+
93+
## Avantages et compromis du modèle Callback
94+
95+
Avantages :
96+
97+
* Découple la logique d'exécution d'une opération de la logique de signalement ou de notification, améliorant la modularité et la réutilisabilité
98+
* Facilite le traitement asynchrone, améliorant la réactivité et l'évolutivité des applications
99+
* Permet un modèle de programmation réactive où les composants peuvent réagir aux événements au fur et à mesure qu'ils se produisent
100+
101+
Compromis :
102+
103+
* Callback hell ou pyramide de la mort : Les callbacks imbriqués en profondeur peuvent rendre le code difficile à lire et à maintenir
104+
* L'inversion de contrôle peut entraîner un flux de code plus difficile à suivre, rendant le débogage plus complexe
105+
* Problèmes potentiels de gestion des erreurs, en particulier dans les langages ou environnements où des exceptions sont utilisées, car les erreurs doivent être propagées à travers les callbacks
106+
107+
## Modèles de conception Java connexes
108+
109+
* [Command](https://java-design-patterns.com/patterns/command/): Les callbacks peuvent être implémentés comme des objets Command dans des scénarios nécessitant plus de flexibilité ou d'état dans l'opération de callback
110+
* [Observer](https://java-design-patterns.com/patterns/observer/): Les callbacks peuvent être vus comme une forme plus dynamique et légère du modèle Observer, avec la possibilité de s'abonner et de se désabonner dynamiquement des fonctions de callback
111+
* [Promise](https://java-design-patterns.com/patterns/promise/): Dans certains langages ou frameworks, les Promises ou Futures peuvent être utilisées pour gérer les opérations asynchrones plus proprement, souvent en utilisant des callbacks pour les cas de succès ou d'échec
112+
113+
## Références et crédits
114+
115+
* [Design Patterns: Elements of Reusable Object-Oriented Software](https://amzn.to/3w0pvKI)
116+
* [Effective Java](https://amzn.to/4cGk2Jz)
117+
* [Java Concurrency in Practice](https://amzn.to/4aRMruW)

0 commit comments

Comments
 (0)