Skip to content

Commit f1a73e3

Browse files
authored
translattion: Translation of business-deleagate in french (#3050)
1 parent b82cdf7 commit f1a73e3

File tree

1 file changed

+187
-0
lines changed

1 file changed

+187
-0
lines changed

Diff for: localization/fr/business-delegate/README.md

+187
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
---
2+
title: "Business Delegate Pattern en Java: Simplifier l'intéraction avec les services métiers"
3+
shortTitle: Business Delegate
4+
description: "Apprenez à connaître le patron Business Delegate en Java. Ce patron ajoute une niveau d'abstraction en la couche de présentation et la couche métier, assurant un couplage faible et une intéraction simplifiée entre les sevices."
5+
category: Structural
6+
language: fr
7+
tag:
8+
- Business
9+
- Decoupling
10+
- Delegation
11+
- Enterprise patterns
12+
- Layered architecture
13+
---
14+
15+
## Aussi connu sous le nom de
16+
17+
* Service Representative
18+
19+
## But du modèle de conception Business-Delegate
20+
21+
Le modèle Business Delegate est un modèle de conception structurel en Java qui ajoute un niveau d'abstraction en la couche de pésentation et la couche métier. Utiliser ce modèle garanti un couplage faible entre les couches et encapsule les informations sur la localisation, la connexion et les interactions des objets métiers qui composent l'application.
22+
23+
## Explication détaillée et exemples concrets
24+
25+
Exemple concret
26+
27+
> Dans une application d'entreprise utilisant Java EE, le modèle Business-Delegate permet de gérer les interactions entre les différents services commerciaux.
28+
>
29+
> Imaginez un restaurant où le personnel de service sert d'intermédiaire entre les clients et la cuisine. Lorsqu'un client passe une commande, le serveur l'apporte à la cuisine, transmet toute demande spécifique et ramène ensuite le plat préparé au client. Le personnel de salle fait abstraction de la complexité des opérations de cuisine, ce qui permet aux chefs de se concentrer uniquement sur la préparation des plats, sans avoir à interagir directement avec les clients. Cette configuration permet au service à la clientèle (niveau de présentation) et à la cuisine (service commercial) de fonctionner de manière indépendante et efficace. Le personnel de service joue le rôle de délégué commercial, en gérant la communication et en garantissant des interactions harmonieuses entre les deux secteurs distincts.
30+
31+
En clair
32+
33+
> Le Business-Delegate ajoute une couche d'abstraction entre le niveau de présentation et le niveau commercial.
34+
35+
Définition Wikipedia :
36+
37+
> Business Delegate est un modèle de conception Java EE. Ce modèle vise à réduire le couplage entre les services métier et le niveau de présentation connecté, et à masquer les détails de mise en œuvre des services (y compris la consultation et l'accessibilité de l'architecture EJB). Les délégués commerciaux agissent comme un adaptateur permettant d'invoquer des objets commerciaux à partir du niveau de présentation.
38+
39+
## Example de programme
40+
41+
Le code Java suivant montre comment mettre en œuvre le modèle de délégué commercial. Ce modèle est particulièrement utile dans les applications nécessitant un couplage lâche et une interaction efficace entre les services.
42+
43+
Une application pour téléphone portable promet de diffuser en continu n'importe quel film existant sur votre appareil. Elle capture la chaîne de recherche de l'utilisateur et la transmet au Business Delegate. Ce dernier sélectionne le service de streaming vidéo le plus approprié et lit la vidéo à partir de là.
44+
45+
Tout d'abord, nous disposons d'une abstraction pour les services de streaming vidéo et de quelques implémentations.
46+
47+
```java
48+
public interface VideoStreamingService {
49+
void doProcessing();
50+
}
51+
52+
@Slf4j
53+
public class NetflixService implements VideoStreamingService {
54+
@Override
55+
public void doProcessing() {
56+
LOGGER.info("NetflixService is now processing");
57+
}
58+
}
59+
60+
@Slf4j
61+
public class YouTubeService implements VideoStreamingService {
62+
@Override
63+
public void doProcessing() {
64+
LOGGER.info("YouTubeService is now processing");
65+
}
66+
}
67+
```
68+
69+
Ensuite, nous avons un service de recherche qui décide quel service de streaming vidéo utiliser.
70+
71+
```java
72+
73+
@Setter
74+
public class BusinessLookup {
75+
76+
private NetflixService netflixService;
77+
private YouTubeService youTubeService;
78+
79+
public VideoStreamingService getBusinessService(String movie) {
80+
if (movie.toLowerCase(Locale.ROOT).contains("die hard")) {
81+
return netflixService;
82+
} else {
83+
return youTubeService;
84+
}
85+
}
86+
}
87+
```
88+
89+
Le Business Delegate utilise un service de recherche pour acheminer les requêtes vers le bon service de streaming.
90+
91+
```java
92+
93+
@Setter
94+
public class BusinessDelegate {
95+
96+
private BusinessLookup lookupService;
97+
98+
public void playbackMovie(String movie) {
99+
VideoStreamingService videoStreamingService = lookupService.getBusinessService(movie);
100+
videoStreamingService.doProcessing();
101+
}
102+
}
103+
```
104+
105+
Le client mobile se sert du Business Delegate pour appeler la couche métier.
106+
107+
```java
108+
public class MobileClient {
109+
110+
private final BusinessDelegate businessDelegate;
111+
112+
public MobileClient(BusinessDelegate businessDelegate) {
113+
this.businessDelegate = businessDelegate;
114+
}
115+
116+
public void playbackMovie(String movie) {
117+
businessDelegate.playbackMovie(movie);
118+
}
119+
}
120+
```
121+
122+
Finalement, l'exemple concret en action.
123+
124+
```java
125+
public static void main(String[] args) {
126+
127+
// prepare the objects
128+
var businessDelegate = new BusinessDelegate();
129+
var businessLookup = new BusinessLookup();
130+
businessLookup.setNetflixService(new NetflixService());
131+
businessLookup.setYouTubeService(new YouTubeService());
132+
businessDelegate.setLookupService(businessLookup);
133+
134+
// create the client and use the business delegate
135+
var client = new MobileClient(businessDelegate);
136+
client.playbackMovie("Die Hard 2");
137+
client.playbackMovie("Maradona: The Greatest Ever");
138+
}
139+
```
140+
141+
Voici la sortie affichée dans la console.
142+
143+
```
144+
21:15:33.790 [main] INFO com.iluwatar.business.delegate.NetflixService - NetflixService is now processing
145+
21:15:33.794 [main] INFO com.iluwatar.business.delegate.YouTubeService - YouTubeService is now processing
146+
```
147+
148+
## Diagramme de classe
149+
150+
![Business Delegate](./etc/business-delegate.urm.png "Business Delegate")
151+
152+
## Quand utiliser ce modèle de conception
153+
154+
Utilisez le modèle Business Delegate lorsque
155+
156+
* Vous avez besoin d'un couplage lâche entre les niveaux de présentation et d'activité ou vous avez besoin d'abstraire les recherches de services.
157+
* Vous souhaitez organiser des appels à de multiples services commerciaux.
158+
* Vous voulez encapsuler les recherches et les appels de services.
159+
* Il est nécessaire d'abstraire et d'encapsuler la communication entre le niveau client et les services métier.
160+
161+
## Tutoriels
162+
163+
* [Design Patterns - Business Delegate Pattern (TutorialsPoint)](https://www.tutorialspoint.com/design_pattern/business_delegate_pattern.htm)
164+
165+
## Applications concrêtes
166+
167+
* Applications d'entreprise utilisant Java EE (Java Platform, Enterprise Edition)
168+
* Applications nécessitant un accès à distance aux services de l'entreprised
169+
170+
## Avantages et inconvénients
171+
172+
Avantages :
173+
174+
* Découplage des niveaux de présentation et d'activité : Permet au niveau client et aux services commerciaux d'évoluer indépendamment.
175+
* Transparence de l'emplacement : Les clients ne sont pas affectés par les changements de localisation ou d'instanciation des services commerciaux.
176+
* Réutilisation et évolutivité : Les objets Business Delegate peuvent être réutilisés par plusieurs clients, et le modèle prend en charge l'équilibrage de la charge et l'évolutivité.
177+
178+
Inconvénients :
179+
180+
* Complexity: Introduces additional layers and abstractions, which may increase complexity.
181+
* Performance Overhead: The additional indirection may incur a slight performance penalty.
182+
183+
## Réferences et crédits
184+
185+
* [Core J2EE Patterns: Best Practices and Design Strategies](https://amzn.to/4cAbDap)
186+
* [J2EE Design Patterns](https://amzn.to/4dpzgmx)
187+
* [Patterns of Enterprise Application Architecture](https://amzn.to/3WfKBPR)

0 commit comments

Comments
 (0)