Génie civil & structural
Utiliser le modèle de décorateur pour ajouter le logging aux méthodes de service existantes sans changer leur code
Table of Contents
Le modèle de décorateur est un modèle de conception puissant dans l'ingénierie logicielle qui permet aux développeurs d'ajouter de nouvelles fonctionnalités aux objets existants sans modifier leur code d'origine. Cette approche est particulièrement utile lorsque vous devez ajouter la connexion aux méthodes de service sans modifier leur code source, assurant des bases de code propres et durables.
Comprendre le modèle du décorateur
Le modèle de décorateur consiste à créer une classe d'emballage qui implémente la même interface que le service original. Cet emballage délègue les appels au service original mais ajoute un comportement supplémentaire – comme la logarithme – avant ou après l'exécution de la méthode.
Mise en œuvre du Logging avec le motif de décorateur
Supposons que vous ayez une interface de service :
public interface DataService {
void fetchData();
}
Vous pouvez créer une mise en œuvre concrète :
public class RealDataService implements DataService {
@Override
public void fetchData() {
// Fetch data from a database or external API
}
}
Ensuite, créez une classe de décorateur qui ajoute la logarithme :
public class LoggingDataServiceDecorator implements DataService {
private final DataService wrappedService;
public LoggingDataServiceDecorator(DataService service) {
this.wrappedService = service;
}
@Override
public void fetchData() {
System.out.println("Fetching data started.");
wrappedService.fetchData();
System.out.println("Fetching data completed.");
}
}
Utilisation du décorateur
Pour ajouter la logarithme, mettez en place le décorateur avec votre service existant :
DataService service = new RealDataService();
DataService loggedService = new LoggingDataServiceDecorator(service);
// Now, calling fetchData will include logging
loggedService.fetchData();
Avantages du motif de décorateur
- Améliore les fonctionnalités existantes sans modifier le code original
- Encourage la réutilisation et la séparation des préoccupations
- Facilite l'ajout dynamique de plusieurs couches de comportement
L'utilisation du motif décorateur pour la logarithme est une solution élégante qui maintient le code propre et adhère au principe ouvert, ce qui facilite l'extension et l'entretien de vos applications.